nginx.conf
# CPU核心数:建议与CPU核心数(grep ^processor /proc/cpuinfo | wc -l)保持一致,
worker_processes 8;
error_log /mnt/nginx/error.log;
pid /mnt/nginx/nginx.pid;
# 每个进程的最大文件打开数:建议与ulimit -n保持一致,通过ulimit -SHn 65535设置
worker_rlimit_nofile 65535;
events {
# 使用epoll内核模型
use epoll;
# 单个工作进程可以允许同时建立外部连接的数量
worker_connections 20480;
# 一个时刻内可以接收多个新的连接
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'$http_user_agent $http_x_forwarded_for $request_time $upstream_response_time $upstream_addr $upstream_status';
access_log /mnt/nginx/access.log main;
# 域名散列表大小
server_names_hash_bucket_size 128;
# 提高 Nginx 静态资源托管效率
sendfile on;
# 数据包累计到一定大小之后发送,减小了额外开销,提高网络效率
tcp_nopush on;
keepalive_timeout 65;
# 禁用 Nagle 算法,尽快发送数据
tcp_nodelay on;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 500m;
client_body_buffer_size 10m;
proxy_connect_timeout 5s;
proxy_send_timeout 120s;
proxy_read_timeout 120s;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
# 是否开启压缩功能
gzip on;
# 允许压缩的页面最小字节数:建议设置成大于1K,如果小于1K没有意义。
gzip_min_length 1k;
# 压缩缓存区大小:压缩在内存中缓冲几块? 每块多大?
gzip_buffers 4 32k;
# 压缩的http协议版本:可以不设置,目前几乎全是1.1协议
gzip_http_version 1.1;
# 对哪些类型的文件用压缩
gzip_types
text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
text/javascript application/javascript application/x-javascript
text/x-json application/json application/x-web-app-manifest+json
text/css text/plain text/x-component
font/opentype application/x-font-ttf application/vnd.ms-fontobject
image/x-icon;
# 是否传输gzip压缩标志
gzip_vary on;
# 配置禁用gzip条件:正则匹配UA,此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# 压缩级别:推荐6,级别越高压的越小,越浪费CPU计算资源
gzip_comp_level 6;
include conf.d/*.conf;
}