3

Wordpress と nginx を使用する大規模なサイトにハートビート ツールをインストールするための便利なリンク、ヒント、またはスクリプトはありますか。あまりにも多くの人が同時にそのサイトにアクセスすると、サーバーがシャットダウンします。その直後にサイトを自動的に再起動するものが必要です。

よろしく

4

1 に答える 1

4

あなたの質問は、502 で PHP を再起動する方法です。私の最初の答えは、そもそも 502 が発生しないようにする試みです。

  1. PHP が大量のメモリを消費している可能性があります。私の推測では、PHP FCGI の子の数の設定が高すぎます。init スクリプトには、開始する PHP プロセスの量を制御する PHP_FCGI_CHILDREN=20 などのエントリが必要です。数を減らしてみます。PHP プロセスごとの平均メモリを特定できる場合 (おそらく top を使用)、実行する必要がある PHP プロセスの最大数を確立できます。たとえば、2,000MB のサーバーがあり、PHP プロセスがそれぞれ最大 100MB を消費する場合、それらを 20 に制限する必要があります。

  2. 別の場所を作成して、名前を @ 記号で始めることができます。@ 記号は「内部」の場所に使用されます。nginxのhttp://openresty.orgディストリビューションを使用するのが好きです。ngx_lua http://wiki.nginx.org/HttpLuaModuleモジュールが含まれています。Lua は、(とりわけ) シェル コマンドを実行できるスクリプト言語です。例えば:

    location / {
      error_page 502 = @php502error;
    }
    location @php502error {
      content_by_lua 'os.execute("/bin/restart-my-php-processes.sh")';
    }
    

    os.executeはブロックされているので、そのことを念頭に置いておく必要があります... スクリプトを実行するために thttpd を設定している人たちの話を聞いたことがあります。したがって、@php502error の場所で proxy_pass を実行します。

于 2013-11-01T20:24:50.677 に答える