2008-10-22 49 views
15

我們使用HAProxy的是,此刻的負載平衡器要求,並定期發出請求到下游箱,以確保他們使用OPTIONS請求還活着:處理選項在nginx的

選項/ index.html HTTP/1.0

我正在將nginx設置爲緩存(使用ncache)作爲反向代理。出於某種原因,當OPTIONS請求進入時,nginx返回405:

192.168.1.10 - [22/Oct/2008:16:36:21 -0700]「OPTIONS /index.html HTTP/1.0「405 325」 - 「」 - 「192.168.1.10

當直接點擊下游網絡服務器時,我得到了正確的200響應。我的問題是:如何讓nginx將該響應傳遞給HAProxy,或者,如何在nginx.conf中設置響應?

+0

此模塊是否可用? – 2010-04-16 14:29:54

回答

2

在httpchk選項,你可以像這樣指定的HTTP方法:

httpchk GET http://example.com/check.php 

您還可以使用POST,或者一個普通的URI一樣/。我讓它檢查PHP,因爲PHP在Nginx外部運行。

20

我可能已經很晚了,但我遇到了同樣的問題,並找到了兩個解決方案。

首先被欺騙Nginx的一個405點的狀態實際上是一個200 OK,然後將其proxy_pass您HAProxy的是這樣的:

error_page 405 =200 @405; 
location @405 { 
    root /; 
    proxy_pass http://yourproxy:8080; 
} 

第二種解決方案是正好趕上OPTIONS請求,並建立對那些響應請求:

location/{ 
    if ($request_method = OPTIONS) { 
     add_header Content-Length 0; 
     add_header Content-Type text/plain; 
     return 200; 
    } 
} 

只要選擇哪一個更適合你。

我在一個blog post寫了這個,你可以找到更多的細節。