nginx生产环境配置案例
user nobody nobody; ## 指定运行用户和组
worker_processes 4; ## 指定worker数量,建议此处auto
worker_rlimit_nofile 51200; ## 最大打开文件描述符
error_log logs/error.log notice;
pid /var/run/nginx.pid;
events {
use epoll; ## 使用epoll事件驱动模型
worker_connections 51200; ## 一个worker能处理的最大并发
}
http {
server_tokens off; ## 隐藏nginx版本
include mime.types;
proxy_redirect off; ## 关闭代理重定向
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 20m; ## 设置客户端请求body的最大允许大小
client_body_buffer_size 256k; ## 设置客户端请求body的缓冲区大小
proxy_connect_timeout 90; ## 与后端服务器连接的超时时长
proxy_send_timeout 90; ## 把请求发送给后端服务器的超时时长
proxy_read_timeout 90; ## 等待后端服务器发送响应报文的超时时长
proxy_buffer_size 128k; ## 从代理服务器接收的响应的第一部分缓冲区
proxy_buffers 4 64k; ## 从代理服务器读取响应的缓冲区number和size
proxy_busy_buffers_size 128k; ## 限制size在响应尚未完全读取时可能忙于向客户端发送响应的缓冲区总数
proxy_temp_file_write_size 128k; ## 该指令设置缓冲临时文件的最大值
default_type application/octet-stream;
charset utf-8; ## 字符集
client_body_temp_path /var/tmp/client_body_temp 1 2; ## 请求body临时目录
proxy_temp_path /var/tmp/proxy_temp 1 2; ## 代理服务器接受数据临时目录
fastcgi_temp_path /var/tmp/fastcgi_temp 1 2; ## FastCGI服务器接收临时目录
uwsgi_temp_path /var/tmp/uwsgi_temp 1 2; ## uwsgi 服务器接收临时目录
scgi_temp_path /var/tmp/scgi_temp 1 2; ##scgi服务器接收临时目录
ignore_invalid_headers on; ## 开启控制忽略具有无效名称的标头字段
server_names_hash_max_size 256; ## 服务器名称哈希表的最大值
server_names_hash_bucket_size 64; ## 服务器名称哈希表存储bucket大小
client_header_buffer_size 8k; ## 设置缓冲区以读取客户端请求标头
large_client_header_buffers 4 32k; ## 设置缓冲区以读取客户端请求标头最大值number和size
connection_pool_size 256; ## 允许精确调整每个连接的内存分配
request_pool_size 64k; ## 允许精确调整每个请求的内存分配
output_buffers 2 128k; ## 设置用于从磁盘读取响应的缓冲区number和size
postpone_output 1460; ## 客户端数据的传输最小值,单位字节
client_header_timeout 1m; ## 定义读取客户端请求标头的超时时长
client_body_timeout 3m; ## 定义读取客户端请求主体的超时时长
send_timeout 3m; ## 设置将响应传输到客户端的超时时长
log_format main '$server_addr $remote_addr [$time_local] $msec+$connection '
'"$request" $status $connection $request_time $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
open_log_file_cache max=1000 inactive=20s min_uses=1 valid=1m;
access_log logs/access.log main;
log_not_found on;
sendfile on;
tcp_nodelay on; ## 启用长连接马上响应,提高性能
tcp_nopush off; ## 关闭套接字选项
reset_timedout_connection on; ## 启用重置超时连接
keepalive_timeout 10 5; ## 第一个参数设置长连接超时时长,第二个浏览器识别为keep-alive:timeout=5
keepalive_requests 100; ## 设置可通过一个保持活动连接提供的最大请求数
gzip on; ## 开启压缩
gzip_http_version 1.1; ## 启用压缩时协议最小版本
gzip_vary on;
gzip_proxied any; ## 为所有代理请求启用压缩
gzip_min_length 1024; ## 设置将被gzip压缩的响应的最小长度
gzip_comp_level 6; ## 设置压缩等级
gzip_buffers 16 8k; ## 设置用于压缩响应的缓冲区number和size
gzip_proxied expired no-cache no-store private auth no_last_modified no_etag;
gzip_types text/plain application/x-javascript text/css application/xml application/json;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
}