このトピックでは、クライアントとサーバー間の永続的な接続がタイムアウトする問題の解決方法を説明します。この問題は、Web Application Firewall (WAF) で保護されているサービスで発生する可能性があります。
問題の概要
一部のビジネスシナリオでは、サーバーがクライアントのリクエストを処理するのに 60 秒以上かかることがあります。サーバーがレスポンスを返すまで、サーバーとクライアント間でデータ交換は行われません。
たとえば、Webページで Excel ファイルをアップロードしてサーバーに処理させる場合、サーバーがデータを処理するのに約 3 分かかり、120 秒を超えて HTTP または TCP を介してクライアントとデータ交換を行わないことがあります。この場合、WAF はクライアントに 504 Gateway Timeout エラーを返し、接続を終了します。
デフォルトでは、WAF はデータ交換なしで 120 秒を超える永続的な接続を維持しません。
ソリューション
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスがデプロイされているリソースグループとリージョンを選択します。 中国本土または中国本土以外を選択します。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
アクセスタイプに応じて次の手順を実行します。
[CNAME アクセス]
CNAME アクセス タブで、対象のドメイン名を探し、操作 列の 編集 をクリックします。
転送ルールの設定 ウィザードページの 他の詳細設定 で、ドメイン名の 読み取り接続タイムアウト期間 と 書き込み接続タイムアウト期間 を調整します。 読み取りおよび書き込み接続タイムアウトのデフォルトは、どちらも 120 s です。 値は 1 ~ 3600 s の範囲で指定できます。
[クラウドプロダクトアクセス] (ECS の例)
クラウドプロダクトアクセス タブで、対象のクラウド製品を見つけ、インスタンスのポート詳細を展開し、操作 列の ポート詳細 をクリックします。
詳細設定 を展開し、読み取り接続タイムアウト期間 と 書き込み接続タイムアウト期間 を調整します。 読み取りと書き込みの接続タイムアウトのデフォルトは、どちらも 120 秒です。 値は 1~3600 秒の範囲で設定できます。