代码如下: user nobody nobody; worker_processes 4; error_log logs
南非蚂蚁https://blog.51cto.com/ixdba/790611
Nginx安置完毕后,会孕育产生相应的安置目录,按照前面的安置路径,Nginx的配置文件路径为/opt/nginx/conf,此中nginx.conf为Nginx的主配置文件。这里重点介绍下nginx.conf这个配置文件。
Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(负载均衡处事器设置)和 location(URL匹配特定位置的设置)。main部分设置的指令将影响其他所有设置;server部分的指令主要用于指定主机和端口;upstream指令主要用于负载均衡,设置一系列的后端处事器;location部分用于匹配网页位置。这四者之间的关系式:server担任main,location担任server,upstream既不会担任其他设置也不会被担任。
在这四个部分傍边,每个部分都包罗若干指令,这些指令主要包罗Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。
下面通过一个Nginx配置实例,详细介绍下nginx.conf每个指令的含义。为了能更清楚地了解Nginx的布局和每个配置选项的含义,这里凭据成果点将Nginx配置文件分为7个部分逐次讲解,下面就围绕这7个部分进行介绍。
1.Nginx的全局配置
下面这段内容是对Nginx的全局属性配置,代码如下:
user nobody nobody;
worker_processes 4;
error_log logs/error.log notice;
pid logs/nginx.pid;
worker_rlimit_nofile 65535;
events{
use epoll;
worker_connections 65536;
}
对上面这段代码中每个配置选项的含义解释如下:
user是个主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。
worker_processes是个主模块指令,指定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。按照经验,一般指定一个进程足够了,如果是多核CPU,建议指定和CPU的数量一样的进程数即可。
error_log是个主模块指令,用来界说全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,此中,debug输出日志最为最详细,而crit输出日志最少。
pid是个主模块指令,用来指定进程id的存储文件位置。
worker_rlimit_nofile用于指定一个nginx进程可以打开的最多文件描述符数目,这里是65535,需要使用命令“ulimit -n 65535”来设置。
events指令是设定Nginx的事情模式及连接数上限。
events{
use epoll;
worker_connections 65536;
}
use是个事件模块指令,用来指定Nginx的事情模式。Nginx撑持的事情模式有select、poll、kqueue、epoll、rtsig和/dev/poll。此中select和poll都是标准的事情模式,kqueue和epoll是高效的事情模式,差此外是epoll用在Linux平台上,而kqueue用在BSD系统中。对付Linux系统,epoll事情模式是首选。
worker_connections也是个事件模块指令,用于界说Nginx每个进程的最大连接数,默认是1024.最大客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processes*worker_connections,在作为反向代办代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。
进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操纵系统命令“ulimit -n 65536”后worker_connections的设置才华生效。
2.HTTP处事器配置
接下来开始进行HTTP处事器设置。
下面这段内容是Nginx对HTTP处事器相关属性的配置,代码如下:
http{
include conf/mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] ‘
‘"$request" $status $bytes_sent ‘
‘"$http_referer" "$http_user_agent" ‘
‘"$gzip_ratio"‘;
log_format download ‘$remote_addr - $remote_user [$time_local] ‘
‘"$request" $status $bytes_sent ‘
‘"$http_referer" "$http_user_agent" ‘
‘"$http_range" "$sent_http_content_range"‘;
client_max_body_size 20m;
client_header_buffer_size 32K;
large_client_header_buffers 4 32k;
Sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/29884.html