33

現在 HAProxy をロード バランサーとして使用しており、OPTIONS リクエストを使用してダウンストリーム ボックスに定期的にリクエストを送信し、それらが有効であることを確認します。

オプション /index.html HTTP/1.0

nginx をキャッシング付きのリバース プロキシとして設定する作業を行っています (ncache を使用)。何らかの理由で、OPTIONS リクエストが着信したときに nginx が 405 を返しています。

192.168.1.10 - - [22/Oct/2008:16:36:21 -0700] "オプション /index.html HTTP/1.0" 405 325 "-" "-" 192.168.1.10

ダウンストリーム Web サーバーに直接アクセスすると、適切な 200 応答が返されます。私の質問は、nginx がその応答を HAProxy に渡すようにする方法、または nginx.conf で応答を設定するにはどうすればよいかということです。

4

2 に答える 2

47

私はおそらく遅れていますが、同じ問題を抱えていて、2つの解決策を見つけました。

最初に、405 ステータスが実際には 200 OK であることを Nginx に騙し、次のように HAProxy に proxy_pass します。

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;
    }
}

どれがより適しているかを選択してください。

詳細については、こちらのブログ記事を参照してください。

于 2012-02-08T16:14:15.450 に答える
1

httpchk オプションでは、次のように HTTP メソッドを指定できます。

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

POST、または / のようなプレーンな URI を使用することもできます。PHPはNginxの外部で実行されるため、PHPをチェックします。

于 2011-01-11T21:27:12.383 に答える