2011-02-17 18 views
6

Estoy usando nginx como interfaz para un servidor apache. El archivo de configuración se parece a:Mostrar una página 503 personalizada si upstream está inactiva

upstream apache { 
    server localhost:8000; 
} 

server { 
    listen 80; 
    error_page 503 /www/static/503.html; 

    # need some magic here # 

    location /static/ { 
     root /www/static/; 
    } 

    location/{ 
     proxy_path http://apache/; 
    } 
} 

Por ahora, cuando se ha reducido Apache, recibo una llanura 502 página generada por nginx. ¿Cómo hacer que sirva a mi página de error personalizada y devolver el código de estado 503 que es más relevante en esta situación?

Respuesta

25

Algo como esto

upstream apache { 
    server localhost:8000; 
} 

server { 
    listen 80; 
    error_page 502 503 /www/static/503.html; 

    location /static/ { 
     root /www/static/; 
    } 

    location/{ 
     proxy_path http://apache/; 
    } 
} 

puede añadir códigos de error estándar juntos para mostrar una sola página para varios tipos de errores.
Por ejemplo:

error_page 502 503 /www/static/503.html; 

Para mayor referencia puede vincular el error_page manual


Por error_page manual dice

Además, es posible cambiar el código de respuesta a otro, para ejemplo:

error_page 404 =200 /.empty.gif; 

Otra opción
Para que sea devuelve un código de error diferente que puede hacer uso de una palabra clave return
Por ejemplo:

# check for a condition 
    if (condition) { 
    return 503; 
    } 

Vea también
nginx: Create HTTP 503 Maintenance Custom Page

+0

¿La ruta '/ www/static/503.html' es absoluta en el sistema de archivos o relativa dentro de la ubicación? –

Cuestiones relacionadas