ApacheディレクティブMaxClients
とListenBacklog
を知っています。たとえば、100の同時接続の制限を設定しようとしています。その後、新しい接続に静的ページが提供されます。これはできますか? MaxClients
とListenBacklog
はその制限よりも高いか低いか?どうすればテストできますか?
これが私がそれをした方法です:Xの同時リクエストを許可したいとしましょう。その後、次のYの同時リクエストがキューに残り、最初のXが終了するのを待ち、X + Yを超えるすべてのものが静的ページに提供されます:
httpd.conf
では、次のディレクティブを設定する必要があります。
MaxClients X
ServerLimit X
ListenBacklog Y
MySQLにrootとして記録し、max_connections
を設定します。
set global max_connections = X
サーバーのパブリックルートフォルダーから.htaccess
ファイルを編集します。
ErrorDocument 503 error_503.html
Error_503.htmlが1つのリクエストで提供されることを確認してください。すべてのスタイルシートとスクリプトはこのファイルに含まれている必要があります。画像を含める場合は、 データURIスキーム を使用する必要があります。また、IEデータURIは32KiBより小さくなければならないため、画像をスライスする必要があります。
ApacheがすでにMaxClientsを処理しているために着信接続を受け入れることができない場合、静的ページを提供できません。ですから、確かな証拠はありませんが、Apacheだけでこれを達成する方法がわかりません。 Apacheが接続障害を返した場合に静的ページを返す何かを、Apacheの前に置くことができるかもしれませんが、私には多くの複雑な構成のように思えます。うまくいけば、誰かが私が間違っていることを証明するために一緒にいるでしょう。