【问题标题】:How to configure Nginx behind a corporate proxy如何在公司代理后面配置 Nginx
【发布时间】:2012-08-05 14:21:55
【问题描述】:

NginX 是否有 apache 的 ProxyRemote 指令等效项?

所以场景是我在一个公司代理后面,我想用 NginX 为各种服务做代理传递。我会在 Apache 中执行以下操作:

ProxyPass /localStackOverflow/ https://stackoverflow.com/

ProxyPassReverse /localStackOverflow/ https://stackoverflow.com/

ProxyRemote https://stackoverflow.com/http://(my企业代理IP)

我知道我需要 NginX 中的 proxy_pass 指令,但找不到我要用于 ProxyRemote 的指令。

谢谢

【问题讨论】:

    标签: nginx


    【解决方案1】:

    您在 Nginx 前端 Web 服务器后面代理的服务器称为上游服务器。您需要参考HttpUpstreamModule 的文档。这与您所熟悉的非常相似。如果您不需要负载平衡,您只需在配置中设置一个上游服务器即可。

    【讨论】:

    • 我看不出这是如何解决问题的,也许我错过了什么? ProxyPass 可以将上游服务器作为参数,这对于负载平衡很方便,但是如何确保这些请求是通过 http_proxy env var 之类的东西 - 例如对于他提到的公司防火墙用例?在我尝试做同样的事情时询问。
    • @JeffPuckettII 它对我有用。也许他们修好了。
    【解决方案2】:

    不确定@tacos 响应如何工作 - 可能是我遗漏的东西,但我能让它工作的唯一方法是重写 url 并传递给公司代理。如下所示:

    http {
      server {
        listen 80;
        location / {
              rewrite ^(.*)$ "http://www.externalsite.com$1" break;
              proxy_pass http://corporate-proxy.mycorp.com:8080;
        }
      }
    }
    

    这可行,但确实重写了 url,不确定这对原始用例是否重要..

    【讨论】:

    • 这只是向客户端发送重定向(302)。不涉及 proxy_pass 行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2014-10-28
    相关资源
    最近更新 更多