nginx, how to give a 5xx when php-fpm is not available?

I've a running setup with nginx and php-fpm. I've found that, when php-fpm is not available, nginx respond with a 404 error.

I think that's not the right answer, I will expect that in case of unavailability of php-fpm my web server will respond with a 5xx error.

My config now is working fine, but I prefer that in case of a crash of php-fpm, my server respond with an error code 5xx (i.e. 500 or 503).

Is there a way in order to configure this?

Here's my actual configuration:

location ~ \.php$ {
fastcgi_pass   unix:/var/run/php5-fpm.piwik.sock;
fastcgi_index  index.php;
include        fastcgi_params;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache piwik;
fastcgi_cache_valid  60m;

fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_REGION_NAME $geoip_region_name;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_AREA_CODE $geoip_area_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_ORGANIZATION $geoip_org;

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  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

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_param  REDIRECT_STATUS    200;

fastcgi_intercept_errors on;
}

Thanks in advance for your help

Fabio

1
задан 17 March 2016 в 21:55
1 ответ

Попробуйте проверить заголовки.

Nginx должен выдать ошибку 502.

В этой конфигурации: https://stackoverflow.com/questions/36035266/fastcgi-sent-in-stderr-primary-script-unknown- while-reading-response-header-from все работает должным образом

Nginx 1.8.1 PHP 7.0.6-dev

PS

Проверить файл fastcgi_params и не дублировать директивы fastcgi_param в ] location

-2
ответ дан 4 December 2019 в 10:57

Теги

Похожие вопросы