ngnix跳轉(zhuǎn)到404
proxy_intercept_errors on; #如果被代理服務(wù)器返回的狀態(tài)碼為400或者大于400,設(shè)置的error_page配置起作用。默認(rèn)為off。error_page 404 https://www.baidu.com; #錯誤頁 如果我們的代理只允許接受get,post請求方法的一種proxy_method get; #支持客戶端的請求方法。post/get;如果你的nginx服務(wù)器給2臺web服務(wù)器做代理,負(fù)載均衡算法采用輪詢,那么當(dāng)你的一臺機(jī)器web程序iis關(guān)閉,也就是說web不能訪問,那么nginx服務(wù)器分發(fā)請求還是會給這臺不能訪問的web服務(wù)器,如果這里的響應(yīng)連接時間過長,就會導(dǎo)致客戶端的頁面一直在等待響應(yīng),對用戶來說體驗(yàn)就打打折扣,這里我們怎么避免這樣的情況發(fā)生呢。這里我配張圖來說明下問題。
如果負(fù)載均衡中其中web2發(fā)生這樣的情況,nginx首先會去web1請求,但是nginx在配置不當(dāng)?shù)那闆r下會繼續(xù)分發(fā)請求道web2,然后等待web2響應(yīng),直到我們的響應(yīng)時間超時,才會把請求重新分發(fā)給web1,這里的響應(yīng)時間如果過長,用戶等待的時間就會越長。
下面的配置是解決方案之一。
proxy_connect_timeout 1; #nginx服務(wù)器與被代理的服務(wù)器建立連接的超時時間,默認(rèn)60秒 proxy_read_timeout 1; #nginx服務(wù)器想被代理服務(wù)器組發(fā)出read請求后,等待響應(yīng)的超時間,默認(rèn)為60秒。 proxy_send_timeout 1; #nginx服務(wù)器想被代理服務(wù)器組發(fā)出write請求后,等待響應(yīng)的超時間,默認(rèn)為60秒。 proxy_ignore_client_abort on; #客戶端斷網(wǎng)時,nginx服務(wù)器是否終端對被代理服務(wù)器的請求。默認(rèn)為off。