zhaoyu@home:~$

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 定义一个工作进程同时处理的连接数。