3

Apache ディレクティブMaxClientsListenBacklog. 制限を設定しようとしています。たとえば、100 の同時接続を考えてみましょう。その後、新しい接続は静的ページに提供されます。これはできますか?MaxClients と ListenBacklog は、その制限より高くする必要がありますか? どうすればテストできますか?

4

2 に答える 2

1

これが私が行った方法です: X 同時リクエストを許可したいとしましょう。その後、次の Y 同時リクエストがキューに残り、最初の X が終了するのを待ち、X+Y を超えるすべてが静的ページに提供されます。 :

  1. httpd.confのディレクティブで設定する必要があります。

    MaxClients X
    ServerLimit X
    ListenBacklog Y
    
  2. MySQL で root としてログに記録し、次のように設定しますmax_connections

    set global max_connections = X
    
  3. サーバーのパブリック ルート フォルダーからファイルを編集し.htaccessます。

    ErrorDocument 503 error_503.html
    
  4. error_503.html が 1 つのリクエストで提供されることを確認してください。すべてのスタイルシートとスクリプトがこのファイルに含まれている必要があります。画像を含めたい場合は、data uri schemeを使用する必要があります。また、IE データの URI は 32KiB よりも小さくする必要があるため、画像をスライスする必要があります。

于 2012-06-23T17:21:08.763 に答える
1

nginx を apache の前に配置できる場合は、この nginx モジュールhttps://github.com/cfsego/nginx-limit-upstreamを試すことができます。Apache への接続数を制限し、他の接続をキューに配置します。それはまさにあなたが探しているものではありませんが、モジュールを変更して、キューに配置する代わりに静的ページをレンダリングすることは可能だと思います。

于 2012-06-16T13:57:55.197 に答える