新しいサーバーに移行した後、スクリプトの速度が急激に低下しました。
一部のトラブルシューティングでは、サーバーがSSL証明書をロードしようとすると、Curl接続中に遅くなることがわかりました。どのサードパーティのサイトやAPIにアクセスしても、結果は同じです。
これはAmazon EC2 Linuxインスタンスにあります。証明書はサーバーに付属しています。この同じスクリプトは他のサーバーでうまく実行されます(もうアクティブではありません)。
ただし、詳細出力に表示される前に2〜100秒間一時停止されます。
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
ALPN/NPN, server did not agree to a protocol
カール要求が増えるほど、速度は徐々に遅くなります。
それからcur_setopt($ ch、CURLOPT_SSL_VERIFYPEER、FALSE)を追加しましたが、問題は消えました!速度が正常に戻ります。
そのため、SSL 証明書を読み取る方法が原因でプロトコルのネゴシエーションを試みている間に速度が遅くなるようです。
この問題の原因は何ですか?
ありがとう
答え1
遅すぎるかもしれませんが、最近でも同じ問題が発生しました。私のPHPスクリプトはcentos7で実行されています。
追跡を見てGoogleを検索し続けた後、この動作を引き起こす問題が見つかりました。
https://bugzilla.redhat.com/show_bug.cgi?id=1659108
解決策:
更新しましたプロトン交換膜カーリングに役立つパッケージ(1.0.3-5.el7 -> 1.0.3-7.el7)です。
パッケージを更新できず、SSL証明書の検証を無効にしたくない場合は、次のものを使用できます。ファイルからコンテンツをインポートするlibcurlの代わりに。