Como usar o Nginx como um servidor proxy HTTP / HTTPS? [fechadas]

13

É possível usar o Nginx como um proxy HTTP / HTTPS?

    
por vlad 06.08.2011 / 13:03

3 respostas

12

Depois de alguns testes, encontrei trabalhando para mim a seguinte configuração.

server {
  server_name ~^(www\.)?(?<domain>.+)$;
  access_log /var/log/nginx/proxy.access.log main;
  error_log /var/log/nginx/proxy.error.log crit;
  listen 10.255.1.13:8080;
  resolver 8.8.8.8;
  location / {
    proxy_pass http://$domain;
    proxy_redirect off;
    proxy_set_header Host $host;
    # Optional headers 
    # proxy_set_header X-Real-IP $remote_addr;
    # proxy_set_header X-Forwarded-For
    # $proxy_add_x_forwarded_for;
  }
}

Esta configuração funciona apenas para HTTP, não para HTTPS.

    
por 08.08.2011 / 13:24
6

eu acho que a resposta curta é não, ela não foi escrita para proxy de encaminhamento

UPDATE

para esclarecer minha declaração acima:

O NGINX nunca foi escrito com o proxy forward em mente - embora seja possível remotamente, de alguma forma, alterar a configuração para fazer o que você deseja, você terá que entender as seguintes limitações:

  • Suporte de cache quase inexistente (uma das principais razões para usar um proxy)
  • Não é possível usar nada além do tráfego da porta 80 (ou seja, não fazer login nas caixas do cpanel por meio dele)
  • Não há suporte para tráfego baseado em SSL
  • Não há suporte para cabeçalhos de proxy padrão e cabeçalhos de cache http (minha compreensão é que eles são transmitidos apenas
  • Não há suporte para outros protocolos que suportam servidores proxy - por exemplo, VPN etc.

Possíveis outras considerações que são desconhecidas no momento:

  • É possível fazer seu proxy como DoS sem capacidade real de autenticação / controle de acesso refinado (o nginx tem suporte para diferentes métodos de controle de acesso, mas não está claro como isso pode se comportar no contexto do proxy de encaminhamento)
  • Possíveis riscos de segurança para a máquina na qual o nginx está instalado, porque pode haver possíveis brechas de segurança não consideradas devido ao uso de uma maneira que não foi projetada para executar
por 06.08.2011 / 14:21
3

Se você quiser usar um proxy HTTP / HTTPS, use o Squid. Foi escrito para fazer exatamente isso. O Nginx foi escrito para atuar como um proxy reverso e um balanceador de carga, mas não um proxy de encaminhamento.

    
por 06.08.2011 / 14:27

Tags