nginx catchall 使用 proxy_pass 中的 $host 返回坏网关

nginx catchall 使用 proxy_pass 中的 $host 返回坏网关

我目前在我的开发环境中使用以下虚拟服务器代理设置,定义的虚拟服务器工作正常,但是当我点击我的 catchall 时出现了一个坏网关错误

这个想法是使用 nginx 作为前端,在端口 80 上并排运行 IIS Apache 和 Tomcat,并使用 IIS(在我的设置中为端口 88)作为 catchall 规则的默认设置

这也让我能够从我们的生产或测试服务器中代理出我需要的任何东西,而不必在本地环境中维护 60gb 的内容文件存储,也不必担心通过虚拟目录隧道传输到我们的测试服务器环境

(由于需要更改旧代码来支持它,因此我们目前不使用 CDN)

我希望它捕获定义的 URL 并配置它们的代理,否则只需将 URL 传递给 IIS

所以我最大的问题是,为什么这会导致网关错误以及如何修复它以使其正常工作,或者我是否在这里滥用系统,我对 nginx 有点陌生,并且无法通过详尽的谷歌和 SE 搜索找到任何类似的东西

   server {
            listen       80;
            server_name  m.dev.someurl.com;

            location / {
              proxy_pass      http://m.dev.someurl.com:88;
              proxy_redirect  http://m.dev.someurl.com:88/ /;
              proxy_read_timeout 60s;

              # May not need or want to set Host. Should default to the above hostname.
              proxy_set_header          Host            $host;
              proxy_set_header          X-Real-IP       $remote_addr;
              proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
            }

            location /Content {
              proxy_pass      http://m.productionserver.com/Content;
              proxy_redirect  http://m.productionserver.com/Content/ /;
              proxy_read_timeout 60s;

              # May not need or want to set Host. Should default to the above hostname.
              proxy_set_header          Host            $host;
              proxy_set_header          X-Real-IP       $remote_addr;
              proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }



    server {
            listen 80 default_server;
            #server_name _;

            location / {
              proxy_pass      http://$host:88;
              proxy_redirect  http://$host:88/ /;
              proxy_read_timeout 60s;

              # May not need or want to set Host. Should default to the above hostname.
              proxy_set_header          Host            $host;
              proxy_set_header          X-Real-IP       $remote_addr;
              proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
            }


    }

当 catchall 应该被命中时,会生成类似这样的日志条目,请注意,使用的所有 URL 都在 hosts 文件中引用,以进行本地解析

2015/02/12 11:16:20 [error] 1248#8412: *2 no resolver defined to resolve dev.serverurl.ca, client: 127.0.0.1, server: , request: "GET /Content/Utility/TickerUpdate HTTP/1.1", host: "dev.serverurl.ca", referrer: "http://dev.serverurl.ca/somefolder"

相关内容