nginx+php-fpm: как настроить свою 404 при нерабочем php-fpm?

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
tull
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-02-23 19:02:38

nginx+php-fpm: как настроить свою 404 при нерабочем php-fpm?

Непрочитанное сообщение tull » 2011-10-13 20:36:27

когда php-fpm не работает, nginx выдает стандартную страницу ошибки:
404 Not Found
nginx/1.0.6
а хочется, чтобы выдавало мою.
в конфиге ессно прописано error_page 404, но эта страница выдается только когда php-fpm работает, и открываешь несуществующую страницу.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35262
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение Alex Keda » 2011-10-14 13:35:03

Код: Выделить всё

srv0# more /usr/local/etc/nginx/all.vhost.includes.conf 
# общие вещщи дл всех виртуалхостов - чтоб не менять в каждом по тыщще раз

# местоположение страниц ошибок
location /963ae7870bf7a8d3d2242b10e6aee32b/ {
        internal;
        root    /usr/local/ispmgr/www/disabled/;
}

# обработка ошибок
error_page      400     /963ae7870bf7a8d3d2242b10e6aee32b/400.html;
error_page      401     /963ae7870bf7a8d3d2242b10e6aee32b/401.html;
error_page      403     /963ae7870bf7a8d3d2242b10e6aee32b/403.html;
# если включить обработку 404 тут, то перестаёт работать @fallback
#error_page     404     /963ae7870bf7a8d3d2242b10e6aee32b/404.html;
error_page      405     /963ae7870bf7a8d3d2242b10e6aee32b/405.html;
error_page      408     /963ae7870bf7a8d3d2242b10e6aee32b/408.html;

error_page      500     /963ae7870bf7a8d3d2242b10e6aee32b/500.html;
error_page      502     /963ae7870bf7a8d3d2242b10e6aee32b/502.html;
#error_page     502     =200    /errors/404.gif;
error_page      503     /963ae7870bf7a8d3d2242b10e6aee32b/503.html;
error_page      504     /963ae7870bf7a8d3d2242b10e6aee32b/504.html;


recursive_error_pages   on;

# ограничения на число хитов в секунду
limit_req zone=two burst=30;
# ограничиваем скорость на 1 мегабит =)
#set $limit_rate 1024k; 

srv0# 
Убей их всех! Бог потом рассортирует...

tull
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-02-23 19:02:38

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение tull » 2011-10-14 17:57:58

извините, но вы не могли бы подсказать, что конкретно надо прописать в конфиг, чтобы выдавалась определенная страница (своя, а не стандартная 404), когда не работает php-fpm?
из вашего конфига я этого не понял.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение LMik » 2011-10-15 9:38:14

tull писал(а):извините, но вы не могли бы подсказать, что конкретно надо прописать в конфиг, чтобы выдавалась определенная страница (своя, а не стандартная 404), когда не работает php-fpm?
из вашего конфига я этого не понял.
Что то там в доке nginx про intercept errors кажется. Вообще когда fpm не работает, у вас должна быть bad gateway а не 404.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

tull
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-02-23 19:02:38

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение tull » 2011-10-15 15:18:36

LMik писал(а):Вообще когда fpm не работает, у вас должна быть bad gateway а не 404.
Тем не менее выдается дефолтная 404, с номером версии.

в конфиге сайта прописано:

Код: Выделить всё

 error_page 404   /404.html;
error_page 500 502 503 504  /50x.html;
location = /50x.html { root html; } 
50x ессно есть

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение LMik » 2011-10-15 16:08:21

tull писал(а):
LMik писал(а):Вообще когда fpm не работает, у вас должна быть bad gateway а не 404.
Тем не менее выдается дефолтная 404, с номером версии.

в конфиге сайта прописано:

Код: Выделить всё

 error_page 404   /404.html;
error_page 500 502 503 504  /50x.html;
location = /50x.html { root html; } 
50x ессно есть
Конифг в студию тогда.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

tull
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-02-23 19:02:38

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение tull » 2011-10-15 17:28:49

nginx.conf:

Код: Выделить всё

user	www www;
worker_processes 2;
worker_priority -7;
working_directory	/tmp;
error_log	/www/error.log error;
pid		/var/run/nginx.pid;

worker_rlimit_nofile	200000;
events {
	worker_connections	50000;
	use kqueue;
}
timer_resolution	100ms;

http {
	include		/etc/nginx/mime.types;
	default_type	application/octet-stream;
	log_format	main	'[$time_local] $remote_addr $host $request';

	sendfile	on;
	tcp_nopush	on;
	tcp_nodelay	on;

	keepalive_timeout  40 15;
	reset_timedout_connection  on;
	client_header_timeout 60;
	client_body_timeout 75;
	send_timeout 75;
	client_header_buffer_size 4k;
	large_client_header_buffers 4 4k;

	gzip on;
	gzip_comp_level 4;
	gzip_min_length 2000;
	gzip_buffers 16 96k;
	gzip_types text/plain;

	output_buffers 16 96k;
	postpone_output 1460;
	charset off;

	proxy_redirect off;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $remote_addr;

	client_max_body_size 10m;
	client_body_buffer_size 128k;
	proxy_connect_timeout      75;
	proxy_send_timeout         50;

	proxy_read_timeout         60;
	proxy_buffer_size          4k;
	proxy_buffers              12 96k;
	proxy_busy_buffers_size    96k;
	proxy_temp_file_write_size 96k;

	index  index.php index.html index.htm;
	fastcgi_index  index.php;
	fastcgi_read_timeout	150;

	error_page  404			/www/404.html;


    server {
		listen	1.2.3.4;
		server_name	mydomain.ru;
		access_log	/www/mydomain.ru_access.log main;
		set		$srv_root	/www/mydomain.ru/www;
		root		$srv_root;
		if (!-e $request_filename) { rewrite ^/.*\.php /404.html break; }

		error_page 404              /404.html;
		error_page 500 502 503 504  /50x.html;
		location = /50x.html { root html; }

		location ~ \.php$ {
		    include /etc/nginx/fastcgi.conf;
		}
}
fastcgi.conf:

Код: Выделить всё

				fastcgi_pass    unix:/tmp/php-fcgi.sock;
                fastcgi_param   SCRIPT_FILENAME $srv_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
                fastcgi_param   DOCUMENT_ROOT   $srv_root;
                fastcgi_param   DOCUMENT_URI    $document_uri;
                fastcgi_param   PATH_TRANSLATED $srv_root$fastcgi_script_name;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;
                fastcgi_param   SERVER_NAME     $server_name;
                fastcgi_param   SERVER_ADDR     $server_addr;
                fastcgi_param   SERVER_PORT     $server_port;
                fastcgi_param   SERVER_PROTOCOL $server_protocol;
                fastcgi_param   SERVER_SOFTWARE "nginx";
                fastcgi_param   GATEWAY_INTERFACE "CGI/1.1";
                fastcgi_param   FASTCGIENABLED  "YES";
                fastcgi_param   REQUEST_URI     $request_uri;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   REMOTE_USER     $remote_user;
                fastcgi_param   REMOTE_ADDR     $remote_addr;
                fastcgi_param   REMOTE_PORT     $remote_port;
                fastcgi_param   PHP_SELF        $fastcgi_script_name;
                error_page      502 = /nofastcgi;

#               fastcgi_pass_request_body       off;
#               client_body_in_file_only        clean;
#               fastcgi_param   REQUEST_BODY_FILE       $request_body_file;
кстати, если еще заодно подскажете, что у меня криво настроено, буду очень благодарен.

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение LMik » 2011-10-15 17:48:35

error_page 502 = /nofastcgi;

Вот ваша проблема.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

tull
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-02-23 19:02:38

Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-

Непрочитанное сообщение tull » 2011-10-15 18:47:44

LMik писал(а):error_page 502 = /nofastcgi;
Вот ваша проблема.
да нет, проблема не в этом. я пробовал камментить ее, писать /50x.html не влияет она.

сейчас совершенно случайно обнаружил, в чем дело было
error_page 500 502 503 504 /50x.html;
вот из-за этой строчки проблема: location = /50x.html { root html; }