502 error de puerta de enlace incorrecta que se muestra al cambiar entre páginas del sitio y algunas veces en la página de inicio, pero no para la primera solicitud en la página de inicio, es solo cuando otra página lo redirige. y sucede con algunos archivos javascript
equilibrio de carga configurado en dos upstreams php1 php2 ambos son servidor apache.
Cuando verifiqué el registro de errores, me gustaba:
no live upstreams while connecting to upstream
[error] 27212#0: *314 no live upstreams while connecting to upstream, client: ip_address , server: example.com, request: "GET / HTTP/1.1", upstream: "http://example.com", host: "example.com", referrer: "http://example.com/mypages/"
y esta es la configuración del servidor de equilibrio de carga
upstream example.com {
# ip_hash;
server php01 max_fails=3 fail_timeout=15s;
server php02 max_fails=3 fail_timeout=15s;
}
server {
listen IP:80;
server_name example.com;
access_log /var/log/nginx/example.com.access;
error_log /var/log/nginx/example.com.error error;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://$server_name/$uri;
proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
proxy_cache_bypass $http_pragma $http_authorization;
proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
proxy_no_cache $http_pragma $http_authorization;
}
}
Busqué durante horas y nada útil encontró que mis transmisiones están activas y no hubo problemas con ellas.
Respuestas:
Esto no es un problema con Nginx, es un problema con sus backends PHP que no responden a tiempo. Puede agregar el registro a Nginx para ayudar a confirmar esto .
Como segundo punto de referencia, puede hacerlo
top
en el servidor y verificar manualmente si PHP está bloqueando la CPU por períodos de tiempo, otro indicador de respuestas lentas.Si las respuestas muy lentas de PHP están bien con usted, puede pedirle a Nginx que espere más antes de darse por vencido:
Al examinar los registros con la información de sincronización vinculada a lo anterior, debe poder averiguar qué solicitudes son lentas para que PHP las procese.
Para reducir el problema, envíe estas solicitudes directamente al backend de PHP.
Dependiendo de lo que esté sucediendo, también puede habilitar el almacenamiento en caché de algunas solicitudes en Nginx, evitando algunas solicitudes lentas.
fuente
No sé si es lo mismo, pero lo que funcionó para mí fue agregar max_fails = 0 al final del nombre del servidor
upstream sm_url {servidor LOAD_BALANCER_DOMAIN_NAME: max_fails = 0; }
fuente
Cambie el nombre del flujo ascendente a "up_example.com" y cambie
ser
fuente
$server_name
. Si este fuera el problema, creo que tendría problemas / todo / el tiempo, no solo a veces como se informó.