2012-12-01 45 views
0

我想重新映射Nginx生成的502和504錯誤,當它無法成功地將代理與408錯誤進行通信時。將proxy_pass中的Nginx 502/504錯誤重新映射到408錯誤

很明顯,當Nginx返回502/504並且沒有主體時,它應該返回408而不是主體。

我嘗試添加該指令,但它顯然破壞了響應頭:

error_page    502 =408; 
error_page    504 =408; 

任何想法如何做重新映射Nginx上的錯誤代碼?

回答

0

http://nginx.org/r/error_page

語法:error_page代碼... [= [響應]] URI;

你忘了指定uri參數(您=408的說法已經解釋爲URI)。

UPD:

location/{ 
    error_page 502 504 =408 @empty; 
} 

location @empty { 
    return 200 ''; 
} 
+0

奇怪的是,Nginx接受解析沒有uri部分的配置。無論如何,我沒有任何頁面重定向到,我只是想重新映射一個錯誤代碼,所以我想error_page不是正確的方式? – Pol

+0

由於代碼參數是可選的,因此Nginx無法知道是否是'= 408' URI。即使頁面爲空,您也必須指定一個包含錯誤的頁面。我已經更新了我的答案。 – VBart