全局块
配置影响nginx全局的命令
配置运行nginxfwq用户(组)
指令格式:user user [group];
- user:指定运行nginx的用户
- group:可选,可以运行nginx的用户组
如果user指令不配置或者为 user nobody nobody,则默认所有用户都可以启动nginx进程
进程数的配置
指令格式:worker_processess number | auto;
- number:nginx进程最多产生的工作进程数
- auto:nginx进程将自动检查
PID存放路径
指令格式:pid file
- file:指定存放路径和文件名,如果不指定默认路径为:logs/nginx.pid
nginx是作为系统守护线程运行,需要在某文件中保存当前运行程序的主进程号
保存日志的存放路径
指令格式:error_log file level;
- file:输出到哪个文件
- level:日志输出级别
配置文件引入
指令格式:include file;
- file其他nginx配置文件
events块
影响nginx服务器或与用户的网络连接
设置网络连接的序列化
指令格式:accept_mutex on | off;
该指令默认为on状态,表示会对多个nginx进程接收连接进行序列化,防止多个进程对连接争抢
是否允许接收多个网络连接
指令格式:multi_accept on | off;
该指令默认为off状态,表示每个工作进程一次只能接收一个新到达的网络连接
事件驱动模型的选择
指令格式:use model
- model:模型选项包括select、poll、kqueue、epoll、rtsig等
最大连接数的配置
指令格式:worker_connections number;
- number:默认值为512,表示允许每一个工作线程可以同时开启的最大连接数
http块
可嵌套多个server块,配置代理、缓存、日志定义等绝大多数功能和第三方模块的配置
定义MIME-Type
指令格式:include mime.types;
default_type mime-type;
- mime-type:表示网络资源的媒体类型,也即前端请求的资源类型
需要将mime.types文件包含进来
自定义服务日志
指令格式:access_log path [format];
- path:自定义服务日志的路径 + 名称
- format:可选项,自定义服务日志的字符串格式
允许sendfile方式传输文件
指令格式:sendfile on | off;
sendfile_max_chunk size;
- 前者用于开启和关闭sendfile,默认off
- 后者指令若size>0,则nginx进程的每个工作进程每次调用sendfile传输的数据最大不能超过此值;若size=0则表示不限制。默认值为0
连接超时配置
指令格式:keepalive_timeout timeout [header_timeout];
- timeout:表示server端对连接的保持时间,默认75秒
- header_timeout:可选项,表示在应答报文头部的"Keep-Alive:timeout=header_timeout"
upstream块
指令格式:upstream name
- name:自定义的upstream的名称
配置服务器
指令格式:server address [parameters];
- address:服务器地址
- parameters:可选,参数
参数 | 作用 |
---|---|
weight | 权重,每台服务器能响应的请求数量的比例 |
max_fails | 请求最大失败次数,默认是1,0代表禁用 |
fail_timeout | 在指定时间内请求失败的次数,超过这个次数则任务服务器不可用 |
down | 标记服务器不可用 |
backup | 表示备用服务器,当其他服务器不可用时使用此服务器 |
server块
配置虚拟主机的相关参数
单连接请求数上限
指令格式:keepalive_requests number;
- number:通过某一个连接向nginx服务器发起请求的次数
配置网络监听
指令格式:方式一 配置监听IP地址:listen IP[:PORT]
方式二 配置监听的端口:listen PORT
- IP:监听的ip
- PORT:监听的端口
基于名称和ip的虚拟主机配置
指令格式:server_name name1 name2... | ip
- name:服务的域名
- ip:服务的IP地址
可以有多个并列名称,而且此处的name支持正则表达式
location块
配置请求的路由,已经各种页面的处理情况
location
指令格式:location [ = | ~ | ~* | ^~ ] uri
-
uri:分为标准uri和正则uri,两者唯一区别是uri中是否包含正则表达式
-
=:用于标准uri前,要求请求字符串与uri严格匹配,一旦匹配成功则停止
-
~:用于正则uri前,并且区分大小写
-
~*:用于正则uri前,但不区分大小写
-
^~:用于标准uri前,要求nginx找到标识uri和请求字符串匹配度最高的location
请求根目录配置
指令格式:root path;
- path:nginx接收到请求后查找资源的跟目录路径
设置网站默认首页
指令格式:index file ...
- file:可以包含多个用空格隔开的文件名,先找到哪个页面,就使用哪个页面响应请求
请求转向
指令格式:proxy_pass http:// + upstreamname;
- upstreamname:upstream块的名称