Tengo un proxy inverso nginx que representa las solicitudes de un ELB externo de Amazon a los ELB internos.
Tengo 6 instancias de back-end que manejan las solicitudes. Las configuraciones habilitadas para el sitio se ven así, pero hay diferentes números de puerto y proxy_pass. Todo lo demás es idéntico:
server {
listen 3000;
location / {
proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000;
include /etc/nginx/proxy.conf;
}
}
Una vez cada 24 horas, una de las configuraciones deja de funcionar. Todos los demás servidores proxy funcionan bien. Si reinicio nginx, todas las configuraciones vuelven a funcionar. No hay nada en error.log, nada extraño en el registro de acceso, syslog o dmesg.
¿Es esto algo conocido? ¿He hecho algo mal con mis configuraciones de proxy? ¿Hay otros registros en los que pueda mirar?
nginx
reverse-proxy
usuario202172
fuente
fuente
Respuestas:
La respuesta a esta pregunta es que los ELB a veces cambian las direcciones IP y nginx resuelve los nombres durante el inicio.
Para solucionar esto, siempre hay un servidor DNS en su VPC en 0.2. Entonces, si el IP CIDR local es 10.0.0.0/16, el servidor DNS está en 10.0.0.2.
Agregue esto a la configuración de nginx.
Proxy_pass también debe definirse como una variable; de lo contrario, nginx solo lo resolverá una vez. Entonces, según la configuración anterior, esta es la configuración correcta:
fuente
Si su proxy_pass no pasó directamente a una URL como se muestra en su ejemplo ( http://amazonaws.com ), sino a una granja de servidores ascendente proxy, como esta:
Entonces estará menos preocupado por una falla temporal de una de las cadenas ascendentes. Porque todos estarán haciendo el mismo trabajo. Si uno no responde, el próximo se representará para esa respuesta. Tranquilidad de espíritu.
Nginx omitirá una máquina fallida por x segundos automáticamente. Hasta que lo repare, o hasta que regrese por sí mismo. ( http://wiki.nginx.org/HttpUpstreamModule )
Entonces, cualquiera que sea la razón de sus interrupciones, al distribuirlas en una granja aguas arriba, esto se convierte en una configuración más fácil.
fuente