worker_processes auto; # 自动设置为CPU核心数
events {
worker_connections 1024; # 每个worker进程的最大连接数
multi_accept on; # 允许worker同时接受多个新连接
}
# 查看当前限制
ulimit -n
# 临时提高限制
ulimit -n 65535
# 永久修改(在/etc/security/limits.conf中添加)
* soft nofile 65535
* hard nofile 65535
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 100;
}
server {
listen 80 backlog=2048; # 调整监听队列大小
...
}
http {
client_body_buffer_size 16k;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 8k;
}
http {
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
server {
location / {
limit_req zone=req_limit burst=20 nodelay;
}
}
}
upstream backend {
server backend1.example.com;
server backend2.example.com;
keepalive 32; # 每个worker保持的空闲连接数
keepalive_timeout 60s; # 空闲连接保持时间
keepalive_requests 100; # 单个连接最大请求数
}
upstream backend {
server backend1.example.com slow_start=30s;
}
upstream backend {
zone backend 64k;
server backend1.example.com;
server backend2.example.com;
health_check interval=5s fails=3 passes=2;
}
状态监控:
server {
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
日志分析:
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$request_time $upstream_response_time';
性能指标监控:
通过以上配置和调优,可以有效提升Nginx反向代理服务器的并发处理能力和稳定性。