nodejsはnginxを通じて(通って)後で応答の遅い解決方法が現れます.
最近はnodejsを使ってサーバーを構築して、inxを使って逆代理をしました.プロジェクト開発の需要は仕方がありません.しかし、代理店を通してウェブサイトの要求が遅くなりました.しかも我慢できない1分以上です.
最初はnodejs側での問題と疑われましたが、nodejs側で判断されました(テストコードを書くことによって)、1分以上の時間を経てnodejs側に来たことが分かりました.
じゃ、nginxの問題を排除したいです.私の環境はwindows 7(x 64)nginx(1.62)です. nodejs(4.23)は、以下のように配置されています.
2015/12/25 16:43[error]7652[*1 ubstream timed out](10060:A connection atempt failed because the connected party not properly pond after a period of time,or established connectection 127)
以前はあまり気をつけていませんでした.ミスを見つけた以上は、探し方が簡単です.
nodejsのように、nginxに適時に応答していないと、これらの構成を増やして解決できます.(単位は秒です.)
proxyconnect()タイムアウト バックエンドサーバ接続のタイムアウト時間_握手開始応答タイムアウト時間 proxyread_.タイムアウト 接続成功後_バックエンドサーバ応答時間_実際にはバックエンドの待ち行列に入っています.(バックエンドサーバの処理要求の時間とも言えます.) proxysend_タイムアウト バックエンドサーバのデータ転送時間_規定時間内にバックエンドサーバーからすべてのデータを転送しなければなりません.
追加したら解決されます.
最初はnodejs側での問題と疑われましたが、nodejs側で判断されました(テストコードを書くことによって)、1分以上の時間を経てnodejs側に来たことが分かりました.
じゃ、nginxの問題を排除したいです.私の環境はwindows 7(x 64)nginx(1.62)です. nodejs(4.23)は、以下のように配置されています.
server {
listen 80;
server_name mysite.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_pass http://localhost:3333;
}
}
これは比較的に普通の配置で、問題が見つからないので、間違ったログを探すしかないです.突然エラーログerror.logの中にこのようなコードがあります.2015/12/25 16:43[error]7652[*1 ubstream timed out](10060:A connection atempt failed because the connected party not properly pond after a period of time,or established connectection 127)
以前はあまり気をつけていませんでした.ミスを見つけた以上は、探し方が簡単です.
nodejsのように、nginxに適時に応答していないと、これらの構成を増やして解決できます.(単位は秒です.)
proxy_connect_timeout 1;
proxy_send_timeout 30;
proxy_read_timeout 60;
この3つの設定の定義は、proxyconnect()タイムアウト バックエンドサーバ接続のタイムアウト時間_握手開始応答タイムアウト時間 proxyread_.タイムアウト 接続成功後_バックエンドサーバ応答時間_実際にはバックエンドの待ち行列に入っています.(バックエンドサーバの処理要求の時間とも言えます.) proxysend_タイムアウト バックエンドサーバのデータ転送時間_規定時間内にバックエンドサーバーからすべてのデータを転送しなければなりません.
追加したら解決されます.
server {
listen 80;
server_name mysite.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_connect_timeout 1;
proxy_send_timeout 30;
proxy_read_timeout 60;
proxy_pass http://localhost:3333;
}
}