Nginx proxy_pass proxy reverso atrás do firewall corporativo

3

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.

    
por Mark D 27.10.2015 / 20:53

0 respostas