Parece que isso deve ter sido um problema transitório com a AWS (relacionado ao incidente muito divulgado sobre dedos gordos), porque não consegui reproduzi-lo desde que publiquei essa pergunta.
Uma solicitação HTTP enviada por um usuário final para www.stuff.com/things
é processada da seguinte forma:
/things/...
, a solicitação será roteada para outro proxy NGINX. things
proxy) direciona todas as solicitações para um balanceador de carga clássico. things
. Então, para recapitular: tenho o balanceador de carga público , o proxy de segurança , o balanceador de carga particular , o things
proxy e o balanceador de carga clássico.
Quando um usuário tenta visitar www.stuff.com/things
, ele espera, aguarda e acaba recebendo um HTTP 504: tempo limite do gateway. Ou a página é carregada imediatamente. Ou, alguns elementos são carregados rapidamente enquanto outros são interrompidos.
Eu tentei solicitar solicitações de vários lugares da cadeia:
curl
do balanceador de carga clássico , a resposta é instantânea
curl
a things
proxy , a resposta é instantânea
curl
o balanceador de carga particular , a resposta é instantânea
curl
do proxy de segurança , a resposta é instantânea
curl
do balanceador de carga público , a resposta é slooooow ... exceto quando é rápido . Talvez eu precise reconfigurar meus proxies?
O proxy things
é configurado da seguinte forma:
events {
worker_connections 1024;
}
http {
server {
location ^~ /proxycheck {
return 200 'available';
add_header Content-Type text/plain;
}
location / {
proxy_pass ${PROXY_ADDRESS};
}
}
}
O proxy de segurança é configurado da seguinte forma:
events {
worker_connections 1024;
}
http {
server {
location ^~ /proxycheck {
return 200 'available';
add_header Content-Type text/plain;
}
location / {
proxy_pass ${PROXY_ADDRESS};
proxy_read_timeout 90;
proxy_redirect default;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
No futuro, o proxy de segurança verificará os certificados. Até então, eu tenho esse outro problema.
Alguma sugestão?