エラー "Too many open files"(開いているファイルが多すぎます)は、KB 281461 で解決できます。この KB 記事はエラーに対する回避策ですが、将来的にはこの問題が再発する可能性があります。これは、Keep-Alive が使用されている場合に関係します。
API Gateway のサポートされているすべてのバージョン
# lsof > ~/Desktop/lsof.log
# cat ~/Desktop/lsof.log | awk '{ print $2 " " $1; }' | sort -rn | uniq -c | sort -rn | head -20
Proxy-Connection: Keep-Alive
" ヘッダーが Gateway によって追加されます。これは、Apache HttpComponents と HttpClient ライブラリによって行われます。これは標準ヘッダーではありませんが、ブラウザーやプロキシで広く使用されています。その理由は、クライアントが HTTP/1.0 接続ヘッダーを送信している場合、一部のプロキシがこのヘッダーをバックエンドサーバーに盲目的に転送する可能性があり、サーバーがクライアント接続のプロパティとプロキシ接続のプロパティで混乱する可能性があるためです。Proxy-Connection: Keep-Alive
" ヘッダーが存在する場合、ほとんどのプロキシは、接続が閉じられるように応答とともに "Proxy-Connection:Close
" を送り返します。この状況では、プロキシが "Proxy-Connection:Close
" の応答の送信に失敗し、"Too many open files" エラー ログがトリガーされる可能性があります。
"Route Via HTTP(s)" アサーションに手動で "Proxy-Connection:Close
" ヘッダーを追加すると、開いている接続が閉じられ例外が表示されなくなります。
CentOS 7 / RHEL 7 - lsof コマンドが見つからない場合は手動でインストールしてください。
関連: KB 281461
[英文文書] Troubleshooting the "Too many open files" Error When Keep-Alives Are Used