私の携帯電話からELBの背後にあるAWSサーバーに大量のハッシュデータを送信するサービスがあります。時々、Apacheエラーログに70007および70014エラーが発生し、これらの要求はApache access.logに表示されますが、Railsログには表示されません。このエラーが何であるかを調べようとしています。現在の理論では、電話が切断され、リクエストが私たちに送信される前に発生するため、Railsサーバーに到達できないということです。
エラーは次のとおりです。
Unexpected error in mod_passenger: An error occurred while receiving HTTP upload data: The timeout specified has expired (70007)
Unexpected error in mod_passenger: An error occurred while receiving HTTP upload data: End of file found (70014)
私が行ったすべてのGoogle検索で得られた結果は次のとおりです。
70014: ファイル終了エラー。理論によると、これは完全に理解されています。
70007:タイムアウト。 %DをApacheログ形式に設定し、10〜90秒の時間を取得しました。 Apacheのタイムアウトは300秒に設定されています。さらに、多くの要求はタイムアウトなしで10秒以上かかります。私はこれがTCPタイムアウトであるかもしれないと思いましたが、調査の結果、TCPタイムアウトが7200秒に設定されていることがわかりました。
これは何か知っていますか?またどこを見るべきですか?
答え1
Serverfaultに関するこの質問はこの問題をカバーしています。Apacheプロキシタイムアウト。 2つのオプションがあります。
ロギングレベルを上げる
LogLevel DEBUG
ロギングレベルはモジュールによって異なる場合があります。
LogLevel INFO proxy_module:trace5
ApacheとRailsアプリケーション間のプロキシタイムアウトを増やす
ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300