大家都知道前端使用nginx做反向**,如果後端伺服器宕掉的話,nginx是不能把這台real server剔出upstream的,所以還會有請求**到後端的這台real server上面去,雖然nginx可以在localtion中啟用proxy_next_upstream來解決返回給使用者的錯誤頁面,但這個還是會把請求**給這台伺服器的,然後再**給別的伺服器,這樣就浪費了一次**,這次借助與**技術團隊開發的nginx模快nginx_upstream_check_module來檢測後方realserver的健康狀態,如果後端伺服器不可用,則所以的請求不**到這台伺服器。
下面是nginx打上模組補丁的安裝
注:因nginx版本更新,1.7.2以上版本的nginx,補丁為check_1.7.2+.patch
之後在nginx.conf配置檔案裡面的upstream加入健康檢查,如下:
upstream linuxyan {
server 192.168.0.21:80;
server 192.168.0.22:80;
check interval=3000 rise=2 fall=5 timeout=1000;
這裡下面加的這句話我解釋下,interval檢測間隔時間,單位為毫秒;rsie請求2次正常的話,標記此realserver的狀態為up,fall表示請求5次都失敗的情況下,標記此realserver的狀態為down;timeout為超時時間,單位為毫秒。在server段裡面可以加入檢視realserver狀態的頁面
location /nstatus {
check_status;
access_log off;
#allow some.ip.add.ress;
#deny all;
這個時候開啟nstatus這個頁面就可以看到當前realserver的狀態了,
如下圖:
1、兩台realserver都正常的情況下
2、一台realserver故障的情況下
有關於此模組的資訊請查閱:
nginx安裝第三方模組
nginx正常安裝第三方模組的方式如下 configure prefix 你的安裝目錄 add module 第三方模組目錄在未安裝nginx的情況下,安裝第三方模組的方式如下 add module ngx pagespeed master add module 第三方模組目錄 make make ...
nginx 安裝第三方模組
nginx內部是由一些核心和非核心的第三方模組構成,模組化可以通過整合第三方模組實現擴充套件功能。核心模組 ngx http core module 標準模組 http模組 第三方模組 預設支援的模組 ngx http core module 模組 包括 nginx.conf 中的 http段中的 ...
nginx安裝第三方模組
nginx檔案非常小,但是效能非常的高效,這方面完勝apache,nginx檔案小的乙個原因之一是nginx自帶的功能相對較少,好在nginx允許第三方模組,第三方模組使得nginx越發的強大.在安裝模組方面,nginx顯得沒有apache安裝模組方便,當然也沒有php安裝擴充套件方便.在原生的ng...