ここに来ている同僚は、まずこの記事を読むことを強くお勧めします。 Web サーバーが増加し (8 コア負荷 100)、使用できない状態になり、フロントエンド 502 の問題が発生しました。
http://blog.s135.com/file_get_contents/
この記事で説明されている方法に従ってください:
1. file_get_contents ソケットのタイムアウトを明示的に設定します
テスト後、それは実行できません。 php-fpm + nginx のシステム環境では、このタイムアウト設定方法が有効にならないことが判明しました。 apache+php-cgi などの他の環境では、タイムアウトが発生する可能性があります。
タイムアウト設定が有効にならない理由はまだ明らかではありませんが、オンライン環境 (nginx0.8 + php5.2 + php-fpm) に問題があります
解決策:
最終この問題を解決するために、curl ライブラリを作成しました
著者は php-fpm の動作メカニズムについてあまり明確ではなく、私が説明したことが正しいかどうかはわかりません。この記事は純粋に経験に基づいており、皆さんのお役に立てれば幸いです。