nginx.conf 配置優化詳解
阿新 • • 發佈:2018-06-09
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 配置優化詳解