Eu acabei de implantar o nginx em um novo ambiente com a mesma configuração que eu usei anteriormente e estou vendo um comportamento muito estranho.
O Nginx é configurado como um proxy reverso para o Solr, quando tento acessar a interface do usuário do Solr por meio do nginx, demora cerca de um minuto para carregar. Eu verifiquei as ferramentas do Chrome Dev e parece que o navegador pode baixar 6 arquivos logo de cara, no entanto, todas as outras solicitações estão em um status pendente. Então fica ali por exatamente um minuto e depois disso tudo é baixado e carrega a página. Depois disso, a navegação é rápida; Eu acho que isso é principalmente por causa do cache do navegador local.
Aqui está a configuração:
worker_processes 10;
error_log /directory/path/error.log debug;
pid /directory/path/nginx1.pid;
events {
worker_connections 1024;
}
http {
access_log /directory/path/access.log;
proxy_temp_path /directory/path/ 1 2;
upstream backend-test-old {
server 1.1.1.1:7071;
server 2.2.2.2:7071;
}
server {
listen 7071;
server_name localhost;
access_log /directory/path/access_7071.log;
proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";
location /solr {
proxy_pass http://backend-test-old;
}
}
}
Também vejo muitos deles nos registros:
2015/07/10 11:06:38 [warn] 31503#0: *120 an upstream response is buffered to a temporary file /dir/path/7/00/0000000007 while reading upstream, client: 111.111.111.111
2015/07/10 11:06:36 [info] 31503#0: *96 client prematurely closed connection, so upstream connection is closed too while connecting to upstream,
2015/07/10 11:06:36 [error] 31503#0: *101 upstream timed out (110: Connection timed out) while connecting to upstream, client:
Agora, isso não é um problema no meu servidor dev, que executa a mesma configuração e deve ser configurado de forma relativamente semelhante, então pode ser algo relacionado ao sistema, mas não tenho certeza.
Qualquer ajuda seria muito apreciada.
Obrigado
EDITAR:
Parece que o problema é que estou apontando para os hosts de backend por IP vs hostname. Não sei por que isso é um problema. Eu implementei esta configuração:
worker_processes 10;
error_log /path/error.log debug;
pid /path/nginx1.pid;
events {
worker_connections 1024;
}
http {
access_log /path/access.log;
proxy_temp_path /pathproxy_temp/ 1 2;
upstream backend-test-old {
server hostname-for-1.1.1.1:7071;
server hostname-for-2.2.2.2:7071;
}
upstream backend-test-old2 {
server 1.1.1.1:7071;
server 2.2.2.2:7071;
}
server {
listen 7071;
server_name localhost;
access_log /path/access_7071.log;
proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";
location /solr {
proxy_pass http://backend-test-old;
}
}
server {
listen 7072;
server_name localhost;
access_log /path/access_7072.log;
proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";
location /solr {
proxy_pass http://backend-test-old2;
}
}
}
Se eu passar por 7071, funciona bem, no entanto, se eu atingir 7072, o problema de desempenho descrito acima ocorrerá. Alguém tem alguma idéia?