1 votes

Comment afficher l'état de PHP-FPM sur deux pools ?

J'ai nginx 1.0.6 PHP5-FPM 5.3.8.1 sur un vps avec deux sites activés - default & sandbox. Les deux ont des pools différents - default est 127.0.0.1:9001, sandbox est unix:/tmp/php5-fpm.sock.

Le trafic vers domain.com est servi par défaut, sandbox.domain.com l'est par sandbox. Les deux fonctionnent bien pour les applications php.

J'ai décidé d'inverser pm.status_path sur les deux - par défaut c'est /status1, sandbox c'est /status.

Je peux boucler http://127.0.0.1/status1 et obtenir une réponse.

pool:                 default
process manager:      dynamic
start time:           10/Oct/2011:18:14:24 -0500
start since:          8771
accepted conn:        61
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       2
active processes:     1
total processes:      3
max active processes: 1
max children reached: 0

Cependant, http://127.0.0.1/status renvoie un message "la page que vous recherchez est temporairement indisponible. Veuillez réessayer plus tard"

La règle du défaut est assez standard.

location ~ ^/(status|status1|ping)$ {
        fastcgi_param  QUERY_STRING       $query_string;
        fastcgi_param  REQUEST_METHOD     $request_method;
        fastcgi_param  CONTENT_TYPE       $content_type;
        fastcgi_param  CONTENT_LENGTH     $content_length;

        fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param  REQUEST_URI        $request_uri;
        fastcgi_param  DOCUMENT_URI       $document_uri;
        fastcgi_param  DOCUMENT_ROOT      $document_root;
        fastcgi_param  SERVER_PROTOCOL    $server_protocol;

        fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE    nginx;

        fastcgi_param  REMOTE_ADDR        $remote_addr;
        fastcgi_param  REMOTE_PORT        $remote_port;
        fastcgi_param  SERVER_ADDR        $server_addr;
        fastcgi_param  SERVER_PORT        $server_port;
        fastcgi_param  SERVER_NAME        $server_name;

        fastcgi_pass                      127.0.0.1:9001;
        fastcgi_read_timeout              300;
        fastcgi_intercept_errors          on;

        allow                             127.0.0.1;
        deny                              all;
}

Des idées ?

3voto

quanta Points 49664

Créez un location pour /status quelque chose comme ça :

    location /status {
        fastcgi_pass unix:/tmp/php5-fpm.sock;
        include fastcgi.conf;

        fastcgi_intercept_errors        on;
        error_page 404 /error/404.php;
    }

0 votes

Oh - créer /status par défaut et faire pointer vers le pool utilisé en sandbox. Je n'y ai pas pensé. Merci !

3voto

Pavel Points 41
    location /php-fpm-pool1 {
        fastcgi_pass unix:/var/run/php5-fpm-pool1.sock;
        fastcgi_param  QUERY_STRING    $query_string;    #Allow ?json arg
        fastcgi_param  REQUEST_METHOD  GET;
        fastcgi_param  SCRIPT_NAME     /php-fpm-status;
        fastcgi_param  SCRIPT_FILENAME /php-fpm-status;
        allow 127.0.0.1;
        deny all;
    }
    location /php-fpm-pool2 {
        fastcgi_pass unix:/var/run/php5-fpm-pool2.sock;
        fastcgi_param  QUERY_STRING    $query_string;
        fastcgi_param  REQUEST_METHOD  GET;
        fastcgi_param  SCRIPT_NAME     /php-fpm-status;
        fastcgi_param  SCRIPT_FILENAME /php-fpm-status;
        allow 127.0.0.1;
        deny all;
    }

0 votes

Il est normalement recommandé de fournir une explication ainsi que des exemples de configuration ou de code dans votre réponse - pouvez-vous en ajouter une s'il vous plaît ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X