當上遊服務器沒法響應請求時,便會返回50x狀態碼,這裏咱們能夠進行錯誤優化處理,會顯示的更加友好。html
# 方法1:從本地磁盤提供錯誤頁面 server { error_page 500 502 503 504 /50x.html; location =/50x.html { root html; } # 方法2:從外部網站提供錯誤頁面 server { error_page 500 http://www.test.com/50x.html; }
若這裏爲代理到一組上游服務器的話,也能夠定義一個備用服務器,以便於其餘服務器再也不處理請求時暫時處理請求(適用於流量小的站點)。服務器
upstream servers { server 127.0.0.1:8080; server 127.0.0.1:8081; server 127.0.0.1:8082 down; # 下線 server 127.0.0.1:8083 backup; # 備份 } server { location / { error_page 500 502 503 504 =@fallback; proxy_pass http://servers; } location @fallback { proxy_pass http://127.0.0.1:8084; } }
- down 表示該server臨時不參與負載;
- weight 默認值爲1,當weight越大,負載的權重就越大;
- max_fails 表示同時請求失敗的次數爲1,當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤.
- fail_timeout 表示max_fails次失敗後,暫停的時間;
- backup 表示當其餘所有的非backup機器down或者忙的時候,纔會去請求backup機器,因此這臺機器壓力會最輕。
server { proxy_intercept_errors on; # 開啓該指令 error_page 400 403 404 /40x.html; location = /40x.html { root html; } }