Proxy reverso Nginx levando ao loop de redirecionamento

Proxy reverso Nginx levando ao loop de redirecionamento

Eu tenho um balanceador de carga (Nginx) e outro servidor Apache que hospeda um blog wordpress (em/blog). Quero que todo o meu tráfego no meu balanceador de carga /blogvá para este servidor Apache. Eu tenho as seguintes configurações:

upstream main_app  {
  server main_app_address;
}

upstream blog {
  server blog_address;
}

server {
   server_name appname.com;
   return 301 http://www.appname.com$request_uri permanent;
}

server {
  listen 80;
  server_name appname.com;

  location / {
    client_max_body_size 8M;
    proxy_pass  http://main_app;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Scheme $scheme;
  }

  location /blog {
    proxy_pass http://blog/;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Scheme $scheme;
  }

}

Isso me mostra a listagem de diretórios no servidor Apache /onde posso ver, /blogmas não é isso que eu quero, quero que mostre o conteúdo do /blogservidor Apache.

Se eu remover a barra final na diretiva /blog location, acabo com redirecionamentos infinitos.

Como faço para resolver isso?

Responder1

Você pode resolver isso substituindo:

proxy_pass http://blog/;

com

proxy_pass http://blog;

Por favor, leia os documentos:http://nginx.org/r/proxy_pass

Responder2

Eu tive um problema semelhante e foi resolvido quando comenteiproxy_set_header Host $host;

informação relacionada