Можно ли использовать Nginx в качестве HTTP / HTTPS-прокси?
16
После некоторых испытаний я нашел подходящую для меня конфигурацию.
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;
}
}
Эта конфигурация работает только для HTTP, а не для HTTPS.
listen ... default_server
. 2:server_name ""
илиserver_name _
. 2:proxy_pass $scheme://$http_host
. Ограничения: привязка к восходящим потокам только с портом 80; не обрабатывает перенаправляет себя.я думаю, что короткий ответ - нет, он не был написан для прямого прокси
ОБНОВИТЬ
уточнить мое утверждение выше:
NGINX никогда не был написан с учетом прямого прокси-сервера - хотя удаленно можно каким-то образом заставить конфигурацию выполнить то, что вы хотите, вы должны понимать следующие ограничения:
Возможные другие соображения, которые неизвестны в это время:
источник
Если вы хотите использовать прокси HTTP / HTTPS, вам следует использовать Squid. Это было написано, чтобы сделать именно это. Nginx был написан для использования в качестве обратного прокси-сервера и балансировщика нагрузки, но не для прямого прокси.
источник