Страница 1 из 1
nginx+php-fpm: как настроить свою 404 при нерабочем php-fpm?
Добавлено: 2011-10-13 20:36:27
tull
когда php-fpm не работает, nginx выдает стандартную страницу ошибки:
404 Not Found
nginx/1.0.6
а хочется, чтобы выдавало мою.
в конфиге ессно прописано error_page 404, но эта страница выдается только когда php-fpm работает, и открываешь несуществующую страницу.
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-14 13:35:03
Alex Keda
Код: Выделить всё
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#
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-14 17:57:58
tull
извините, но вы не могли бы подсказать, что конкретно надо прописать в конфиг, чтобы выдавалась определенная страница (своя, а не стандартная 404), когда не работает php-fpm?
из вашего конфига я этого не понял.
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-15 9:38:14
LMik
tull писал(а):извините, но вы не могли бы подсказать, что конкретно надо прописать в конфиг, чтобы выдавалась определенная страница (своя, а не стандартная 404), когда не работает php-fpm?
из вашего конфига я этого не понял.
Что то там в доке nginx про intercept errors кажется. Вообще когда fpm не работает, у вас должна быть bad gateway а не 404.
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-15 15:18:36
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 ессно есть
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-15 16:08:21
LMik
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 ессно есть
Конифг в студию тогда.
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-15 17:28:49
tull
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;
кстати, если еще заодно подскажете, что у меня криво настроено, буду очень благодарен.
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-15 17:48:35
LMik
error_page 502 = /nofastcgi;
Вот ваша проблема.
Re: nginx+php-fpm: как настроить свою 404 при нерабочем php-
Добавлено: 2011-10-15 18:47:44
tull
LMik писал(а):error_page 502 = /nofastcgi;
Вот ваша проблема.
да нет, проблема не в этом. я пробовал камментить ее, писать /50x.html не влияет она.
сейчас совершенно случайно обнаружил, в чем дело было
error_page 500 502 503 504 /50x.html;
вот из-за этой строчки проблема: location = /50x.html { root html; }