如何让 NGINX 使用系统代理?

如何让 NGINX 使用系统代理?

我正在尝试设置一个 nginx 服务器,将传入的请求转发到公司代理(它是一个 mcafee 代理),并使用代理头主机和实际目标主机进行转发proxy_set_header Host xyz.com:443

这非常适合http请求但不https

这是我的 nginx.conf(假设不需要代理身份验证)

server {
        listen       80;

        location /test/ {
            proxy_pass http://my-corporate-proxy:8080/;
            proxy_set_header Host mytargetdomain.com:443;
        }

这里我的期望是当我点击http://localhost:80/test/api/health请求时应该转到 nginx 然后转到http://my-corporate-proxy:8080/api/healthHost 标头并从我的代理发起类似 https 请求https://mytargetdomain.com/api/health

但在 https 的情况下不会发生这种情况。

有什么方法可以让它工作吗?或者如果我让 nginx 尊重系统代理,那也应该没问题。

提前致谢。

答案1

这个设置应该可以,但是操作系统的代理设置必须允许 nginx 服务通过,例如如果是 Windows Nginx + Proxifier,在 Proxifier 菜单里的 [Profile][Adv​​anced][Sevices and other users]...options 必须勾选,才能允许 nginx 服务通过。

http{

...  


upstream service_behind_proxy  {
            server my-corporate-service-behind-proxy:8080;
        }

server {
        listen       80;

        location /test/ {
            proxy_pass http://service_behind_proxy;
            proxy_set_header Host mytargetdomain.com:443;
        }

}

相关内容