大家都知道,前段nginx做反向代理,如果後端伺服器宕掉的話,nginx是不能把這台realserver提出upstream的,所以還會有請求轉發到後端的這台realserver上面去,雖然nginx可以在localtion中啟用proxy_next_upstream來解決傳回給使用者的錯誤頁面。
但這個還是會把請求轉發給這台伺服器的,然後再轉發給別的伺服器,這樣就浪費了一次轉發,這次借助與淘寶技術團隊開發的nginx模組,nginx_upstream_check_module來偵測後方realserver的健康狀態,如果後端伺服器不可用,則所有的請求不轉送到這台伺服器。
安裝設定
檔案清單資訊
[root@iZ233438q9fZ upload]# ll drwxr-xr-x 6 ftpuser ftp 4096 Aug 19 10:04 nginx_upstream_check_module drwxr-xr-x 8 1001 1001 4096 Jun 16 2015 nginx-1.9.2.tar.gz
解壓縮
[root@iZ233438q9fZ upload]# tar -zxvf nginx-1.9.2.tar.gz [root@iZ233438q9fZ upload]# cd nginx-1.9.2
nginx補丁安裝
[root@iZ233438q9fZ nginx-1.9.2]# patch -p0 <p><strong>編譯設定</strong></p><pre class="brush:php;toolbar:false">[root@iZ233438q9fZ nginx-1.9.2]# ./configure --add-module=/var/ftp/upload/nginx_upstream_check_module --prefix=/usr/local/server/nginx [root@iZ233438q9fZ nginx-1.9.2]# make && make install
nginx.conf健康檢查設定範例
參數說明:
- check_status:[html|csv|json],預設html
# - check_http_send:指定偵測的http存取位址,預設/
- type:[tcp|http|ssl_hello|mysql|ajp],預設tcp
- interval:向後端發送的健康檢查包的間隔,單位(毫秒)
- fall(fall_count): 如果連續失敗次數達到fall_count,伺服器就被認為是down。
- rise(rise_count): 如果連續成功次數達到rise_count,伺服器就被認為是up。
- timeout: 後端健康請求的逾時時間。
PS:如果一直顯示失敗,請檢查專案根目錄中是否有index.jsp或index.html
更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!
以上是先安裝nginx再加健康模組麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!