nginx 配置文件

Author Avatar
丁起男 07月 16,2020
  • 在其它设备中阅读本文章

全局块

配置影响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块的名称