nginx 是乙個輕量級,高可用的web伺服器,經常做正向**及反向**,web應用負載均衡,web靜態資源分離。下面記錄下最近公司在專案中用nginx做負載均衡解決伺服器壓力及宕機處理配置。
下面是線上nginx配置檔案詳情
}}主要有以下引數要處理
1.worker_processs 4;這裡根據伺服器的cpu核數來決定
2.worker_connections 8000;
併發總數是worker_processes和worker_connection的乘積,併發總數需要小於系統總最大控制代碼數伺服器
3.keepalive_timeout 65;
這裡是http請求保持連線的時間,如果上傳檔案較大耗時較長那麼這個引數時間設定過短將會上傳未成功自動斷開連線,如果時間過長連線數過多,超過
第一和第二引數配置的值將會宕機
4.upstream 實現負載輪詢功能,這裡懸著ip_hash的輪訓分配方式,選擇這個方式的目的是為來解決session共享的問題。
upstream site
其中三颱伺服器內網ip處於同乙個網段的,處理比較快。
5.proxy_set_header host $host:$server_port
這裡重定向了請求頭的ip和埠,如果監聽是非80埠必須加上$server_port
6.proxy_set_header x-real-ip $remote_addr
web伺服器如果需要獲取可以客戶端ip時正常情況下未作**可直接通過request.getheader("remote_addr")方法來獲取的,但是通過nginx**後就會獲取的是nginx伺服器的ip,
所以需要重新給請求頭的remote_addr重新賦予乙個新的值web伺服器可通過request.getheader("x-real-ip")獲取真實客戶端ip。
7.proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for
這裡是將$proxy_add_x_forwarded_for新增到x-forwarded-for裡去,是增加不是覆蓋。負載均衡中若使用兩台nginx並在不同的ip伺服器上,並且都使用了這段配置,那你會發現在 web伺服器端通過request.getheader("x-forwarded-for")獲得的將會是客戶端ip和第一台nginx的ip這兩個值($proxy_add_x_forwarded_for變數包含客戶端請求頭中的"x- forwarded-for",與$remote_addr兩部分,他們之間用逗號分開,第5條配置和第6條配置都能獲取真實ip但是具體區別沒親自實驗過)
nginx負載均衡配置
curl nginx upstream fair.zip unzip nginx upstream fair.zip cd nginx 1.6.2 檢視當前nginx 編譯引數 nginx v 輸出 configure arguments prefix usr local nginx configu...
Nginx負載均衡配置
負載均衡是我們大流量 要做的乙個東西,下面我來給大家介紹在nginx伺服器上進行負載均衡配置方法,希望對有需要的同學有所幫助哦。負載均衡 先來簡單了解一下什麼是負載均衡,單從字面上的意思來理解就可以解釋n臺伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。那麼負載均衡的前提就是...
Nginx負載均衡配置
nginx安裝請參考 nginx原始碼安裝 nginx負載均衡是通過upstream模組來實現的,內建實現了三種負載策略,配置還是比較簡單的。官網負載均衡配置說明 省略其它配置 根據伺服器的響應時間來分配請求,響應時間短的優先分配,即負載壓力小的優先會分配。由於fair模組是第三方提供的,所以在編譯...