Alguém tem alguma idéia de como configurar o nginx por trás de um firewall corporativo, para reverter as solicitações de proxy para servidores fora do firewall?
O motivo pelo qual quero fazer isso é que estou tentando usar um aplicativo que não suporta as configurações http_proxy padrão, enganando-o para pensar que os recursos em questão estão dentro do firewall (ou seja, fazendo proxy reverso com nginx).
Eu tentei o seguinte:
Primeiro tentou proxy_pass e passando o host:
http {
upstream corporate_proxy {
server web-proxy.mycorp.com:8080;
}
server {
listen 80;
rewrite_log on;
location / {
proxy_buffering off;
proxy_pass_header on;
proxy_set_header Host "http://public-website.com";
proxy_pass http://corporate_proxy;
}
}
}
Segunda tentativa de reescrever e passar o URL para o firewall corporativo:
http {
upstream corporate_proxy {
server web-proxy.corp.hpecorp.net:8080;
}
server {
listen 80;
rewrite_log on;
location / {
rewrite ^(.*)$ "http://public-website.com$1" break;
proxy_buffering off;
proxy_pass_header on;
proxy_pass http://corporate_proxy;
}
}
}
Essa abordagem me deixou inicialmente animada, mas na verdade está apenas fazendo um redirecionamento, e não propriamente fazendo proxy, e finalmente falha. Há algo que eu esteja sentindo falta aqui?
Editar: Obrigado ao comentarista abaixo que descobriu o meu erro, eu tinha o protocolo no cabeçalho do host var - removendo-o resolveu o problema - a abordagem # 1 parece funcionar muito bem.
Tags nginx firewall reverse-proxy