Ist es möglich, Nginx als HTTP / HTTPS-Proxy zu verwenden?
15
Nach einigen Tests habe ich festgestellt , dass die folgende Konfiguration für mich funktioniert .
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;
}
}
Diese Konfiguration funktioniert nur für HTTP, nicht für HTTPS.
listen ... default_server
. 2:server_name ""
oderserver_name _
. 2:proxy_pass $scheme://$http_host
. Die Einschränkungen: Poxen auf Upstreams nur mit Port 80; verarbeitet keine Weiterleitungen selbst.Ich denke, die kurze Antwort ist nein, sie wurde nicht für Forward Proxying geschrieben
AKTUALISIEREN
Um meine Aussage zu verdeutlichen:
NGINX wurde nie mit Blick auf Forward-Proxying geschrieben - obwohl es aus der Ferne möglich ist, die Konfiguration irgendwie zu manipulieren, um das zu tun, was Sie wollen, müssen Sie die folgenden Einschränkungen verstehen:
Mögliche andere Überlegungen, die derzeit nicht bekannt sind:
quelle
Wenn Sie einen HTTP / HTTPS-Proxy verwenden möchten, sollten Sie Squid verwenden. Es wurde geschrieben, um genau das zu tun. Nginx wurde als Reverse-Proxy und Load-Balancer entwickelt, jedoch nicht als Forward-Proxy.
quelle