【问题标题】:nginx how to proxy_pass to a proxynginx如何proxy_pass到代理
【发布时间】:2016-12-22 21:45:50
【问题描述】:

我有一个 nginx 服务器正在运行。我想向公司代理发出一些请求并将结果返回给客户端。

假设客户端向http://ip:port/redirect/google.com发出请求,服务器应该以请求的url作为参数向https://username:password@ip_proxy发出请求。

我发现了与我的问题相近的问题:

http://serverfault.com/questions/732063/nginx-proxy-pass-reverse-proxying-behind-corporate-firewall

http://stackoverflow.com/questions/11865119/how-to-configure-nginx-behind-a-corporate-proxy

假设 205.100.100.100:80 是代理 URI,并且 XXVzYTQzMjXXXDpCb25qXXyMQ== 代理的凭据

有人说我们应该重写 url,然后将其传递给 proxy_pass 指令

location ^~ /redirect/ {
        rewrite ^/redirect/(.*) https://google.com;
        proxy_pass_header on;
        proxy_set_header Proxy-Authorization "XXVzYTQzMjXXXDpCb25qXXyMQ==";
        proxy_pass https://205.100.100.100:80;
}

我认为它没有按预期工作,因为它显示为重定向(http 代码 301)

另一个说我们应该使用 Host 标头并用它指定原始 url:

location ^~ /redirect/ {
        proxy_pass_header on;
        proxy_set_header Host "https://google.com";
        proxy_set_header Proxy-Authorization "XXVzYTQzMXXXpCb25XXyMQ==";
        proxy_pass https://205.100.100.100:80;
}

不起作用。他们还说代理读取指定为 url 参数的 url,例如:http://proxy:port/url_requested 所以:

location /redirect { 
    rewrite ^/redirect/(.*)"http://205.100.100.100:80/https://google.com" break; 
    proxy_pass_header on;
    proxy_set_header Proxy-Authorization "XXVzYTQzMXXXpCb25XXyMQ==";
    proxy_pass http://corporate-proxy.mycorp.com:8080; 
}

应该有效吗?

如您所见,我不知道如何指定代理的用户名和密码。我尝试了带有"XXVzYTQzMjXXXDpCb25qXXyMQ=="Proxy-Authorization 标头,但没有结果。

我也尝试了 http_upstream 模块,没有结果。我不能使用proxy_pass http://user:pwd@205.100.100.100:80,因为 nginx 使用“:”来解析端口,它给我指定端口的错误。

我应该如何进行?

也许它来自整个配置或者我使用代理的方式?不知道。

【问题讨论】:

    标签: nginx


    【解决方案1】:

    这是不可能的,nginx 无法与转发代理通信。

    在官方邮件列表中也可以看到这个帖子:http://mailman.nginx.org/pipermail/nginx-devel/2013-March/003534.html

    【讨论】:

    • 谢谢,所以没有办法在标头中传递请求的 url 吗?在邮件中他们谈到了“noredirect”选项,我怎么找不到补丁?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 2018-07-01
    • 2019-03-20
    • 2019-01-22
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多