web-dev-qa-db-ja.com

nginx接続のタイムアウトとクライアントの接続の問題

私はこのnginxサーバーをAWSで実行していて、最近まで何人かのユーザーがWebサイトにアクセスしようとするまでに10回程度試行するまでWebサイトが開かないことについて不平を言うまで、問題なく動作していました。

私は自分の側から問題を再現することができませんでした。私はgoogleのDNS、つまり8.8.8.8を使用しています。ユーザーの1人に対して同じDNSを変更すると、サイトは正常に機能していました。これが原因である場合もあれば、偶然の一致である場合もあります。

これはエラーログで見つかりました-

2014/05/29 13:46:15 [info] 6940#0: *150649 client timed out (110: Connection timed out) while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150670 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150653 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:20 [info] 6940#0: *150652 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80

そしてこれさえある場所-

2014/05/29 13:46:53 [info] 6940#0: *150665 client closed connection while waiting for request, client: xx.xxx.xxx.xx, server: 0.0.0.0:80
2014/05/29 13:46:53 [info] 6940#0: *150660 client xx.xxx.xxx.xx closed keepalive connection

注-クライアントのIPにxx.xxx.xxx.xxを配置しました

ここにnginxの設定があります-

server {
    listen       80;
    server_name  somedomain.com  www.somedomain.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/Host.access.log  main;

    root        /var/www/somedomain/current/app/webroot;
    index       index.php index.html index.htm;

    ... couple of location rules ...
}

私は本当に助けていただければ幸いです。

ありがとう

23
Nitish Dhar

Nginxから提供されたログに基づいて、サーバーとユーザー間の接続が不安定または遅いようです。サーバーからクライアントのIPアドレスまたはゲートウェイにtracerouteを試してください。また、ping長い間クライアントのIPアドレスを確認して、パケット損失率と応答時間を確認します。 MTUがこの問題の別の原因である可能性があります。 MTU = 1500でクライアントに到達できるかどうかをテストします(Mac:ping -D -s 1472 xx.xx.xx.xx)。

ところで:あなたのサーバーまたはクライアントが中国にある場合、この問題は通常あなたのせいではありません。 GFWは、意図的に国際接続の品質を低下させるために、境界間のパケットをランダムに破棄することが知られています。

6
Lingfeng Xiong

これらのログエントリは、OpenVASなどのツールを使用してサーバーをスキャンしたときに表示されるエントリに似ています。これらのツールは、接続不良、速度の低下、またはその他の理由で動作不良を引き起こします。 nginxは、一部の接続がうまくいかなかったと報告しています。すべてのトラフィックが同じソースからのものであり、高速で、アクセスログで一致する他の正当なリクエストがない場合、それはおそらくボットスキャナーのようなものです。

これらのスキャナーは、アプリケーションに負荷をかけ、他の正当なトラフィックの速度を低下させる可能性もあります。

0
edoceo

そのコメントで推測されているように、それはおそらくユーザーエラーであり、(意図的かどうかにかかわらず)接続を閉じています。問題を確実に再現するようにしてください。それが他の場所で起こっていることを排除し、それがその場所だけである場合、彼らは彼らの側でトラブルシューティングする必要があります。別のブラウザー/コンピューターから試し、ネットワークの信頼性をテストします。

0
Peter