1

ELBに接続されたリバースプロキシとしてnginxで動作するvarnish 4サーバーがあります。

2 日ごとにサーバーが応答を停止し、nginx access.log に 499 の応答が表示されます

nginx を再起動すると問題が解決します。

これらの 499 の応答が得られるようになったのはなぜですか?

nginx を再起動して問題を解決するのはなぜですか?

4

1 に答える 1

3

2 つの事実を理解した後、問題を解決しました。

1) ELB インスタンスには動的 DNS 名があります

2)nginxはリロード/再起動時にのみDNS名を解決します

問題は、ELB が IP アドレスを変更し、nginx が古い IP アドレスを保持していたことです。

解決策は、nginx.conf でリゾルバーを使用することです。ここに私のnginx.confがあります:

http {  

    resolver x.x.x.x valid=30s;

}

server {

    set $elb "example.com";

    location / { 

        proxy_pass http://$elb; 

        }
}  

リゾルバーの IP アドレスは、/etc/resolv.conf などの DNS サーバーである必要があります。

于 2016-11-01T09:49:23.073 に答える