現在、HAProxyをロードバランサーとして使用しており、OPTIONSリクエストを使用してダウンストリームボックスが稼働していることを確認するために、定期的にダウンストリームボックスにリクエストを送信します。
オプション/index.htmlHTTP/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
ダウンストリームWebサーバーに直接アクセスすると、適切な200応答が返されます。私の質問は、nginxにその応答をHAProxyに渡すようにする方法、またはnginx.confで応答を設定するにはどうすればよいですか?
私はおそらく遅れていますが、同じ問題があり、2つの解決策を見つけました。
最初は、405ステータスが実際には200 OKであることをNginxにだましてから、次のようにプロキシ_パスしてHAProxyに渡します。
error_page 405 =200 @405;
location @405 {
root /;
proxy_pass http://yourproxy:8080;
}
2番目の解決策は、OPTIONS要求をキャッチし、それらの要求に対する応答を作成することです。
location / {
if ($request_method = OPTIONS ) {
add_header Content-Length 0;
add_header Content-Type text/plain;
return 200;
}
}
どちらが自分に合っているかを選択するだけです。
私はこれを ブログ投稿 に書きました。ここで詳細を見つけることができます。
Httpchkオプションでは、次のようにHTTPメソッドを指定できます。
httpchk GET http://example.com/check.php
POST、または/のようなプレーンURIを使用することもできます。 PHPはNginxの外部で実行されるため、PHPをチェックしてもらいます。