nginx基本配置
语法
单位表示
表示文件大小的有:
- k/K kb。
- m/M mb。
下面两个表示文件大小的命令是相同的。
client_max_body_size 2M; client_max_body_size 2048k;
时间单位
- ms:毫秒
- s:秒,默认单位
- m:分钟
- h:小时。
- d:天。
- w:周。
- M:月(30天)
- y:年(365天)
可以用一个单位指定时间,也可以用多个单位。
client_body_timeout 3m;
client_body_timeout 1m30s;
client_body_timeout '1m 30s 500ms';
变量
NGINX中的变量使用”$”开头,如下:
log_format main '$pid - $nginx_version - $remote_addr';
但是也有些指令不允许使用变量。
字符串
字符串可以直接表示,也可以加单引号或者双引号。
nginx进程结构
- Master进程:
通常用root启动,衍生worker进程,不处理任何客户端请求。
- worker进程:
由Master进程衍生,通常有多个,可以在配置文件中定义数量和用户,每个进程的最大链接等,用于处理客户端请求。
基本模块
基本模块在编译时不能禁用。提供nginx基本功能的指令。
-
Core 模块:提供如进程管理,安全等基础指令。
-
Event 模块:配置网络相关的功能。
-
Configuration 模块:启用inclusion功能,指令:include。
Core 模块指令
-
daemon on或者off。开启,nginx将会在后台运行。
- env 语法:
env key=value;
用于设置环境变量。
- pid 指定pid,在编写脚本时,使用方便。
pid /var/run/nginx.pid
- user 定义worker process的使用用户,在编译时指定,默认为nobody。
user username groupname;
-
worker_threads 指定每个工作进程的线程数。默认为:None。
-
worker_processes 指定工作进程数。
-
error_log 指定错误日志的路径。
Events 模块
-
accept_mutex on或者off,默认为on,在监听sockets的时候是否打开互斥模式。
-
accept_mutex_delay 如:500ms。在互斥模式下,定义一个工作进程再次获取资源需要等待的时间。
-
multi_accept on或者off,定义nginx是否从监听队列一次接收所有的请求连接。
-
use 选择事件模型,可接收的值有:/dev/poll,epoll,eventport,kqueue,select,rtsig。
-
worker_connections 定义一个工作进程同时处理的连接数。