Est-il possible d'utiliser Nginx comme proxy HTTP / HTTPS?
16
Après quelques tests, j'ai trouvé que la configuration suivante fonctionnait pour moi .
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;
}
}
Cette configuration fonctionne uniquement pour HTTP, pas pour HTTPS.
listen ... default_server
. 2:server_name ""
ouserver_name _
. 2:proxy_pass $scheme://$http_host
. Les limitations: poxying aux amonts avec le port 80 seulement; ne traite pas les redirections lui-même.Je pense que la réponse courte est non, elle n'a pas été écrite pour le proxy direct
MISE À JOUR
pour clarifier ma déclaration ci-dessus:
NGINX n'a jamais été écrit avec un proxy direct à l'esprit - alors qu'il est possible de manipuler à distance la configuration pour faire ce que vous voulez, vous devrez comprendre les limitations suivantes:
Autres considérations possibles inconnues pour le moment:
la source
Si vous souhaitez utiliser un proxy HTTP / HTTPS, vous devez utiliser Squid. Il a été écrit pour faire exactement cela. Nginx a été écrit pour agir en tant que proxy inverse et équilibreur de charge, mais pas en tant que proxy direct.
la source