#nginx程序用户,降权启动
user appuser;
#nginx运行cpu亲和力
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#这个指令是指当一个 nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数
#[ulimit -n]与 nginx 进程数相除,但是 nginx 分配请求并不是那么均匀,所以最好与 ulimit -n
#的值保持一致
worker_rlimit_nofile 65535;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#nginx事件处理模型
events {
#是单个 worker 进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是 `worker 进程数乘以 work_connections`
worker_connections 65535;
#采用epoll事件模型,处理效率高
use epoll;
#告诉 nginx 收到一个新连接通知后接受尽可能多的连接
multi_accept on;
}
#开启高效传输模式
http {
#媒体类型, include 只是一个在当前文件中包含另一个文件内容的指令
include mime.types;
#默认媒体类型足够
default_type application/octet-stream;
server_tokens off;
autoindex off;
#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;
#开启高效文件传输模式
sendfile on;
#必须在 sendfile 开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量
# tcp_nopush on;
#也是防止网络阻塞,不过要包涵在 keepalived 参数才有效
tcp_nodelay on;
#客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接
keepalive_timeout 60;
#转发超时时间
proxy_connect_timeout 75;
#发送请求给upstream服务器的超时时间
proxy_send_timeout 75;
#与代理服务器的读超时时间
proxy_read_timeout 75;
#缓冲区大小为4k
proxy_buffer_size 4k;
#由缓冲区数量和缓冲区大小组成
proxy_buffers 4 32k;
#它是proxy_buffer_size和proxy_buffers的一部分,缓冲区满了后写到磁盘的临时文件
proxy_busy_buffers_size 64k;
#一次访问能写入的临时文件的大小,默认是proxy_buffer_size和proxy_buffers中设置的缓冲区大小的2倍
proxy_temp_file_write_size 64k;
#实现被代理服务器的数据和客户端的请求异步
proxy_buffering on;
#从代理服务器接收到数据的临时文件存放的目录
proxy_temp_path /data/nginx/proxy_temp;
#启用缓存,参数keys_zone定义共享内存区-shared memory zone的名称和大小;max_size限制被缓存的响应数据的总量;inactive针对两次请求间隔时间,到时间就删掉不占用内存
proxy_cache_path /data/nginx/proxy_cache levels=1:2 keys_zone=my-cache:100m max_size=1000m inactive=600m max_size=2g;
#设置请求体的超时时间
client_body_timeout 20s;
#上传文件大小限制
client_max_body_size 10m;
client_body_buffer_size 128k;
#设置请求头的超时时间
client_header_timeout 10s;
#客户端请求头部的缓冲区大小
client_header_buffer_size 4k;
#响应客户端超时时间
send_timeout 30s;
#gzip on;
include /etc/nginx/conf.d/web_sit.conf;
include /etc/nginx/conf.d/dhub.conf;
}