A veces me sale un problema con el error 502 cuando el servicio httpd está inactivo. Pero solo en 1 minuto vuelve el sitio web.Cómo crear un error personalizado 502 nginx en el núcleo de nginx (no se usa redirigir a la página de error)?
Necesito personalizar el mensaje 502 para pedirle al usuario que espere 1 minuto y luego actualice la página, o incruste JavaScript o la meta etiqueta de actualización en la página de actualización automática después de 1 minuto. URL de página debe ser la misma para hacer efecto de refresco
en cuenta que lo que sé de la página personalizada de error de redirección por ejemplo location = /502.html
, pero ese tipo de página personalizada de error se redirigirá al usuario otra página, si van a actualizar la página que se ha obtenido un error página otra vez
Cualquier idea será muy útil.
ACTUALIZACIÓN EDITAR para más detalles 10/06/2012.
Mi nginx config:
user nobody;
# no need for more workers in the proxy mode
worker_processes 24;
error_log /var/log/nginx/error.log crit;
#worker_rlimit_nofile 20480;
events {
worker_connections 109024; # increase for busier servers
use epoll; # you should use epoll here for Linux kernels 2.6.x
}
http {
server_name_in_redirect off;
server_names_hash_max_size 2048;
server_names_hash_bucket_size 256;
include mime.types;
default_type application/octet-stream;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 20;
ignore_invalid_headers on;
client_header_timeout 50m;
client_body_timeout 50m;
send_timeout 20m;
reset_timedout_connection on;
connection_pool_size 2048;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
client_max_body_size 20M;
client_body_buffer_size 300k;
request_pool_size 32k;
output_buffers 14 32k;
postpone_output 1460;
proxy_temp_path /tmp/nginx_proxy/;
proxy_cache_path /dev/shm/nginx levels=1:2 keys_zone=wwwcache:45m inactive=5m max_size=1000m;
client_body_in_file_only off;
access_log off;
open_log_file_cache off;
#log_format bytes_log "$msec $bytes_sent .";
include "/etc/nginx/vhosts/*";
}
y host virtual config:
server {
# error_log /var/log/nginx/vhost-error_log warn;
listen 123.30.137.66:80;
server_name xaluan.net mtvvui.com www.daiduong.com.au www.xaluan.net xaluan.com www.xaluan.com www.daiduongrestaurant.net veryzoo.com www.mtvvui.com www.xaluan.org www.veryzoo.com daiduongrestaurant.net xaluan.org daiduong.com.au;
# access_log /usr/local/apache/domlogs/xaluan.net combined;
root /home/xaluano/public_html;
location/{
if ($http_cache_control ~ "max-age=0") {
set $bypass 1;
}
location
~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|htm|txt|js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso)$
{
#root /home/xaluano/public_html;
#proxy_cache wwwcache;
#proxy_cache_valid 200 15m;
#proxy_cache_bypass $bypass;
expires 1d;
#try_files $uri @backend;
proxy_pass http://123.30.137.66:8081;
}
error_page 405 = @backend;
add_header X-Cache "HIT from Backend";
#proxy_set_header Server "Caching-Proxy";
#add_header X-Cache-Vinahost "HIT from Backend";
proxy_pass http://123.30.137.66:8081;
include proxy.inc;
}
location @backend {
internal;
proxy_pass http://123.30.137.66:8081;
include proxy.inc;
}
location ~ .*\.(php|jsp|cgi|pl|py)?$ {
#proxy_cache wwwcache;
#proxy_cache_valid 200 15m;
proxy_pass http://123.30.137.66:8081;
include proxy.inc;
}
location ~ /\.ht {
deny all;
}
}
== la prueba caso ..
Si el servicio httpd de Apache se detiene: #service httpd stop
A continuación, abra en el buscador este enlace: http://www.xaluan.com/modules.php?name=News&file=article&sid=123456 Verá el error 502 con la misma URL en la dirección del navegador.
== página de error personalizada necesito la configuración que le ayudará cuando Apache falla, se mostrar el mensaje personalizado diciendo usuario que espere durante 1 minuto para el servicio en ese entonces, volver a cargar la página actual con misma dirección URL (actualizar Puedo hacer las cosas fácilmente con JavaScript), Nginx no cambia la URL para que JavaScript pueda funcionar.
Tenga en cuenta que también tuve que agregar 'try_files $ uri /502.html;' al bloque 'location =/502.html' (usando nginx versión 1.2.1) –
¡Gracias! Eso funcionó perfectamente. –