Nginx配置通用语法
Nginx配置通用语法
Nginx的配置文件只是一个普通的文本文件,这里借用《深入理解Nginx模块开发与架构解析》上的例子记录Nginx配置的通用语法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | user nobody; worker_processes 8 ; error_log varlog / nginx / error.log error; #pid logs/nginx.pid; events { use epoll; worker_connections 50000 ; } http { include mime.types; default_type application / octet - stream; log_format main '$remote_addr [$time_local] "$request" ' '$status $bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; access_log logs / access.log main buffer = 32k ; ... } |
块配置由一个块配置项名和一对大括号组成,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | events { ... } http { upstream backend { server 127.0 . 0.1 : 8080 ; } gzip on; server { ... location / webstatic { gzip off; } } |
上述代码中的events、http、server、location、upstream等都是块配置项,块配置项后大括号中的就是这个配置项的配置。块配置项可以嵌套,内层的块配置会直接继承外层块的配置,如上述的server就继承了http的配置。但是当内层配置与外层配置冲突时,该块配置会采用哪种配置(这里不解释,在Nginx块内配置冲突一文中介绍)?
从上述中可以了解到,最基本的配置项语法格式就是配置项名+配置项值,配置项名与配置项值之间使用空格符来隔开,而且一个配置项可以对应多个值,最后在每一行配置的结尾都需要加上分号。
不管是代码还是配置中,注释都是不能少的一部分,而nginx配置文件中的行注释与python一样,使用“#”符号可以注释掉这一行内容,如下。
1 | #pid logs/nginx.pid; |
大部分的模块都遵从一些通用规定,如指定空间大小时不需要每次都定义到字节,指定时间是不需要到毫秒级。
当指定空间大小的时候,可以使用K、M为单位。
当指定时间时,可以使用ms、s、m、h、d、w、m、y为单位。如下:
gzip_buffers 4 8k; client_max_body_size 64M; expires 10y; proxy_read_timeout 600; client_body_timeout 2m;
Nginx中有一些模块容许在配置项中使用变量,比如在日志记录部分,我们可以在变量前添加“$”符号,代表该值是一个变量。不过要特别注意的是这种变量只是少数模块支持,并不是通用的。
1 2 3 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; |
作者:红雨
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步