Apache ディレクティブMaxClients
とListenBacklog
. 制限を設定しようとしています。たとえば、100 の同時接続を考えてみましょう。その後、新しい接続は静的ページに提供されます。これはできますか?MaxClients と ListenBacklog は、その制限より高くする必要がありますか? どうすればテストできますか?
2 に答える
これが私が行った方法です: 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 つのリクエストで提供されることを確認してください。すべてのスタイルシートとスクリプトがこのファイルに含まれている必要があります。画像を含めたい場合は、data uri schemeを使用する必要があります。また、IE データの URI は 32KiB よりも小さくする必要があるため、画像をスライスする必要があります。
nginx を apache の前に配置できる場合は、この nginx モジュールhttps://github.com/cfsego/nginx-limit-upstreamを試すことができます。Apache への接続数を制限し、他の接続をキューに配置します。それはまさにあなたが探しているものではありませんが、モジュールを変更して、キューに配置する代わりに静的ページをレンダリングすることは可能だと思います。