1. 程式人生 > >nginx.conf 配置優化詳解

nginx.conf 配置優化詳解

nginx優化 高並發

user www www;——配置nginx運行用戶和用戶組,使用之前創建用戶useradd www -s /sbin/nologin -M worker_processes 4;——配置nginx worker進程數,根據cpu內核數設置,也可以設置成auto worker_cpu_affinity 0001 0010 0100 1000;——配置cpu親和力,此配置為4核(如果cpu是8核,前面worker_processes也設置為8,worker_cpu_affinity配置為00000001,00000010,00000100,00001000,00010000,00100000,01000000,10000000) worker_rlimit_nofile 65535;——為nginx工作進程改變打開最多文件描述符數目的限制。用來在不重啟主進程的情況下增加限制,理論上這個值是最多打開文件數(ulimit -n)與nginx工作進程相除。 events { -------設置一下參數之前,保證nginx高並發,檢查一下文件句柄打開最大數:ulimit -a 查看open files;設置一下系統內核打開文件句柄:echo "2390251" > /proc/sys/fs/file-max; sysctl -p 也可以直接修改vim /etc/security/limits.conf *  soft  nofile  65536 *  hard  nofile  65536 】--------- worker_connections 65535;——設置nginx服務器的每個工作進程允許同時連接客戶端的最大數值,也就是最大連接客戶端=worker_processes*worker_connections/2; multi_accept on;——告訴nginx收到一個新連接通知後接受盡可能多的連接 use epoll;——使用epoll的I/O模型 } 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" ‘ ‘$upstream_addr $upstream_response_time $request_time‘; access_log logs/access.log main; sendfile on;——設置為on表示啟動高效傳輸文件的模式 tcp_nopush on;——必須在sendfile開啟模式才有效,防止網路阻塞,積極的減少網絡報文段的數量 server_tokens off;——不顯示nginx版本信息 keepalive_timeout 65;——長連接timeout upstream interface{ server 192.168.0.1:8089;——反向代理上遊服務器 server 192.168.0.2:8089; } server { listen 8080;——本服務器偵聽端口,要註意的是普通用戶是無法啟動80端口的;要不修改成其他端口,要不就把sbin/nginx修改成chown root nginx,然後chmod u+s nginx 再啟動nginx; server_name 192.168.0.3; access_log logs/host.access.log main; location / { root html; index index.html index.htm; proxy_connect_timeout 90;——該指令設置與upstream server的連接超時時間,有必要記住,這個超時不能超過75秒 proxy_send_timeout 90;——這個指定設置了發送請求給upstream服務器的超時時間。 proxy_read_timeout 90;——該指令設置與代理服務器的讀超時時間。它決定了nginx會等待多長時間來獲得請求的響應 proxy_pass http://interface; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }

nginx.conf 配置優化詳解