Estou tentando configurar o nginx para se comportar como um proxy reverso escutando em um subdomínio que controlamos. Segui exemplos encontrados on-line e eles funcionam principalmente com uma exceção que não está clara para mim.
Inspecione o bloco do servidor abaixo:
server{
listen *:80;
server_name placehold.com;
charset utf-8;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log error;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_pass http://google.com/;
}
}
google.com é um espaço reservado para este teste.
Se eu visitar um URL como "http://placehold.com/test"isso funciona perfeitamente, me redireciona para alguma página de erro do Google e o URL no navegador permanece como os tipos. Mas se eu colocar um URL simples como"http://placehold.com/"então ele redireciona meu navegador para a página inicial do Google, o URL do Google aparecendo claramente no navegador.
Como posso fazer com que o proxy reverso mascare corretamente o URL para URLs '/' e também para URLs '/com/alguns/caminhos'?
Responder1
Seu proxy está funcionando bem. Retornos de visitas http://google.com
:
301 Moved Permanently
Location:https://www.google.com/
Seu navegador está sendo redirecionado parahttp://www.google.com