web-dev-qa-db-ja.com

CloudFlareのタイムアウトを増やすことは可能ですか?

CloudFlareのタイムアウトを増やすことは可能ですか?はいの場合、どのように?

私のコードの実行には時間がかかり、今後数日間はAjaxifyingを計画していませんでした。

enter image description here

18
guaka

いいえ、CloudFlareはその種の エンタープライズプランのカスタマイズ のみを提供します。

  • CloudFlareは、15秒後にHTTPハンドシェイクの確立に失敗するとタイムアウトします。
  • CloudFlareは、サーバーからのHTTP応答を100秒待機してから、 524タイムアウトエラー を表示します。
  • これ以外に、Origin Webサーバーでタイムアウトが発生する可能性があります。

522 on CloudFlare with SYN/ACK522 on CloudFlare with ACK timeout

プロセス間通信 が必要なようです。応答を送信せずにブロッキングタスクを実行するメカニズムとしてHTTPを使用しないでください。そのような種類のアクティビティは、サーバー上の非HTTPサービスに抽象化する必要があります。 RabbitMQ (またはその他のMQ)を使用すると、サーバーのHTTP要素からWebサーバーの処理サービスにメッセージを渡すことができます。

Pub/Sub IPC

25
mjsa

私は同じ問題についてCloudflareと連絡を取り、RabbitMQの技術サポートも受けました。

RabbitMQは、Webソケットに依存するWeb Stompの使用を提案しました。しかし、Cloudflareは提案しました...

WebsocketはCloudflareを介して永続的な接続を作成し、タイムアウトはありませんが、これを解決する最善の方法は、リクエストをバックグラウンドで処理して非同期に応答し、「読み込み中...」ページなどを提供することですユーザーに100秒間待機させるよりも。それはまた、ユーザーにより良いユーザー体験を与えるでしょう

UPDATE:

完全を期すために、サブドメイン経由でレポートを実行して「グレークラウド」することについてもCloudFlareに尋ねたことをここに記録し、次のように回答しました。

レポートに100秒以上かかる理由を確認することをお勧めします。サブドメインでCloudflareを無効にすると、攻撃者はあなたのOrigin IPを知ることができ、攻撃者はCloudflareを直接バイパスして攻撃します。

今後の更新

最後に、スレッドを使用してレポートを実行し、レポートが作成されたかどうかを「ポーリング」するためにAJAXを使用して、この問題を解決しました。 CloudFlareのタイムアウト100秒のバイパス =

9
gordon613