É possível usar o Nginx como um proxy HTTP / HTTPS?
16
Após alguns testes, descobri 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;
}
}
Essa configuração funciona apenas para HTTP, não para HTTPS.
listen ... default_server
. 2:server_name ""
ouserver_name _
. 2:proxy_pass $scheme://$http_host
. As limitações: enviá-lo para upstream com apenas porta 80; não processa redireciona a si próprio.Eu acho que a resposta curta é não, não foi escrita para proxies avançados
ATUALIZAR
para esclarecer minha afirmação acima:
O NGINX nunca foi escrito com o proxy avançado em mente - embora seja remotamente possível, de alguma forma, manipular a configuração para fazer o que você deseja, você terá que entender as seguintes limitações:
Possíveis outras considerações desconhecidas no momento:
fonte
Se você deseja usar um proxy HTTP / HTTPS, deve usar o Squid. Foi escrito para fazer exatamente isso. O Nginx foi criado para atuar como um proxy reverso e um balanceador de carga, mas não como um proxy de encaminhamento.
fonte