nginx 配置文件_Nginx入门详解(四) 配置文件2

二、按块详解

2.1、全局块

2.1.1、配置运行Nginx服务器用户(组)
指令格式:user user [group];user:指定可以运行Nginx服务器的用户group:可选项,可以运行Nginx服务器的用户组如果user指令不配置或者配置为user nobody nobody,则默认所有用户都可以启动Nginx进程。user nginx;
2.1.2、worker process数配置
Nginx服务器实现并发处理服务的关键,指令格式:worker_processes number | auto;number:Nginx进程最多可以产生的worker process数auto:Nginx进程将自动检测worker_processes 3;worker_processes auto;我们给worker_processes配置的数目是:3,启动Nginx服务器后,我们可以后台看一下主机上的Nginx进程情况:ps -aux | grep nginx

21bb76e39e1c9fac5e43b5cc81da41e9.png

2.1.3、Nginx进程PID存放路径
Nginx进程是作为系统守护进程在运行,需要在某文件中保存当前运行程序的主进程号,Nginx支持该保存文件路径的自定义指令格式:pid file;#pid        logs/nginx.pid;
2.1.4、错误日志的存放路径
指定格式:error_log file | stderr;file:日志输出到某个文件filestderr:日志输出到标准错误输出#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;
2.1.5、配置文件的引入
指令格式:include file;该指令主要用于将其他的Nginx配置或者第三方模块的配置引用到当前的主配置文件中。#include extra/my_php.conf;#include extra/*.conf;

2.2、events块

2.2.1、设置网络连接的序列化
指令格式:accept_mutex on | off;该指令默认为on状态,表示会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢。

  说到该指令,首先得阐述一下什么是所谓的 “惊群问题”,可以参考 WIKI百科的解释。就Nginx的场景来解释的话大致的意思就是:当一个新网络连接来到时,多个worker进程会被同时唤醒,但仅仅只有一个进程可以真正获得连接并处理之。如果每次唤醒的进程数目过多的话,其实是会影响一部分性能的。

  所以在这里,

       如果accept_mutex on,那么多个worker将是以串行方式来处理,其中有一个worker会被唤醒;

       反之若accept_mutex off,那么所有的worker都会被唤醒,不过只有一个worker能获取新连接,其它的worker会重新进入休眠状态。

  这个值的开关与否其实是要和具体场景挂钩的。

2.2.2、是否允许同时接收多个网络连接
指令格式:multi_accept on | off;该指令默认为off状态,意指每个worker process 一次只能接收一个新到达的网络连接。若想让每个Nginx的workerprocess都有能力同时接收多个网络连接,则需要开启此配置。
2.2.3、事件驱动模型的选择
指令格式:use model;model模型可选择项包括:select、poll、kqueue、epoll、rtsig等。
2.2.4、最大连接数的配置
指令格式:worker_connections number;number默认值为1024,表示允许每一个worker process可以同时开启的最大连接数。#worker_connections 1024;

2.3、HTTP块-全局

2.3.1 定义MIME-Type
指令格式:include mime.types;default_type mime-type;MIME-Type指的是网络资源的媒体类型,也即前端请求的资源类型include指令将mime.types文件包含进来#include mime.types;cat mime.types来查看mime.types文件内容,我们发现其就是一个types结构,里面包含了各种浏览器能够识别的MIME类型以及对应类型的文件后缀名字,如下所示:

f45723cb0d5e9e26fa435627be83cc3a.png

2.3.2、自定义服务日志
指令格式:access_log path [format];path:自定义服务日志的路径 + 名称format:可选项,自定义服务日志的字符串格式。其也可以使用 log_format 定义的格式#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;
2.3.3、允许sendfile方式传输文件
指令格式:sendfile on | off;sendfile_max_chunk size;前者用于开启或关闭使用sendfile()传输文件,默认off后者指令若size>0,则Nginx进程的每个workerprocess每次调用sendfile()传输的数据了最大不能超出此值;若size=0则表示不限制。默认值为0#sendfile on;
2.3.4、连接超时时间配置
指令格式:keepalive_timeout timeout [header_timeout];timeout 表示server端对连接的保持时间,默认65秒header_timeout 为可选项,表示在应答报文头部的 Keep-Alive 域设置超时时间:“Keep-Alive :timeout = header_timeout”#keepalive_timeout  65;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值