1. 程式人生 > >Nginx生產環境配置

Nginx生產環境配置

一.Nginx 反向代理與負載均衡
二.Nginx 實現快取記憶體
三.Nginx 效能引數調優


nginx調優
1.worker_connections 1024(linux理論上支援十萬,但是要除以工作程序數worker_processes)
2.worker_processes
worker_processes number(CPU核心數)
3.程序和cpu繫結
CPU核心數為4時,可以進行如下配置:
worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;
4.設定worker程序優先順序
worker_priority 0,(-20~19,核心程序優先順序為-5,不要比這個值小)
5.Nginx worker程序可以開啟的最大控制代碼描述符個數
worker_rlimit_nofile limit;
預設為作業系統的限制可以使用ulimit -a檢視
超過這個值得錯誤提示”too many open files”
6.開啟accept鎖,預設是開啟的,可以達到worker程序負載均衡的效果
7.再次accept鎖的時間
accept_mutex_delay 500ms

磁碟IO是否佔用CPU

# 正向代理到baidu 服務
location = /baidu.html {
         proxy_pass http://www.baidu.com;
}

# 反向代理至 本機的8000服務
location /luban/ {
     proxy_pass http://127.0.0.1:8000;  
}
代理相關引數:
proxy_pass           # 代理服務
proxy_redirect off;   # 是否允許重定向
proxy_set_header Host $host; # 傳header引數至後端服務
proxy_set_header X-Forwarded-For $remote_addr; # 設定request header 即客戶端IP 地址,建議配置
proxy_connect_timeout 90; # 連線代理服務超時時間 nginx->連線server
proxy_send_timeout 90; # 請求傳送最大時間nginx->client
proxy_read_timeout 90;  # 讀取最大時間nginx->tomcat
proxy_buffer_size 4k; 
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k; 
proxy_temp_file_write_size 64k;

//負載均衡例子
upstream backend {     
   server 127.0.0.1:80801 weight=1;
   server 127.0.0.1:8080 weight=2;
}
location / {
          proxy_pass http://backend;
}
upstream 相關引數:
service    反向服務地址 加埠
weight    權重
max_fails    失敗多少次 認為主機已掛掉則,踢出
fail_timeout    踢出後重新探測時間
backup    備用服務
max_conns    允許最大連線數
slow_start    當節點恢復,不立即加入,而是等待 slow_start    後加入服務對列。