浏览 1.2k
toa_remote_addr这个变量放在nginx的log_format的配置文件里面,语法检测总是不通过,不知道我是不是忘记安装了什么东西,特来请教,感谢给予回答
语法检测结果如下:
bash-5.0$ nginx -t
2020/09/18 10:59:33 [emerg] 895#895: unknown "toa_remote_addr" variable
nginx: [emerg] unknown "toa_remote_addr" variable
nginx: configuration file /etc/nginx/nginx.conf test failed
所谓性能好,一般指2点:低时延、高并发,由这2点会带来高吞吐量,也就是百万级的QPS。
我先说低时延是怎么办到的:
1、Nginx内部的算法都非常优秀,是性能优先的。
比如hash表会考虑cpu cache line(参见https://www.nginx-cn.net/article/71),比如location匹配是基于URI规则封装的多叉树(参见https://www.nginx-cn.net/article/69)。
2、Nginx充分使用了OS的各种高性能特性
比如Linux的reuseport、accept_defer、lingering_close、sendfile、aio等等。
再说高并发是怎么达到的:
1、每个请求占用的内存极为有限
每个连接占用的基本内存不过几百字节,这需要很深厚的功力,也只有C语言才能办得到。
2、基于事件驱动的多路复用框架
这个已经说烂了,就不多说了
在配置多个监听器时,有报too many open files
1.是root用户启动的nginx
2.limits.conf中配置的1000000
3.nginx.conf中worker_rlimit_nofile 配置的655350,worker_processes配置的10,worker_connections配置的65535
在一般的正则表达式中,`_.*` 表示匹配以下划线(_)开头的任意字符序列,其中 `.*` 表示匹配任意数量的任意字符。也就是:
- `_`:匹配下划线字符。
- `.*`:匹配任意数量(零个或多个)的任意字符。
因此,正则表达式 `_.` 可以匹配以下内容(以 `_` 开头的任意字符序列):
- `_abc`
- `_123`
- `_xyz123`
在给定的 NGINX 配置中,使用 `location ~ \.(_.*|DS_Store|Spotlight-V100|TemporaryItems|Trashes|hidden|localized)$ {}` 这个配置块可以用于匹配一系列文件和目录,包括两种情况:
1. 以下划线开头的文件或目录(例如,`_private`、`_hidden`)。
2. 特定文件或目录,如 macOS 中的 `.DS_Store`、`Spotlight-V100`、`TemporaryItems`、`Trashes`、`hidden` 和 `localized`。
看问题里这个配置块的目的感觉是为了阻止访问或执行某些特定文件或目录,增加服务器的安全性的吧,把这些特定的文件和目录列在配置块中,加上用正则表达式匹配,能有效地屏蔽对它们的访问。