使用docker容器的代理重定向配置Nginx

使用docker容器的代理重定向配置Nginx,docker,nginx,reverse-proxy,Docker,Nginx,Reverse Proxy,我有两个应用程序在docker ie中运行(mapserver和nginx)。我的nginx配置如下所示 upstream mapserver { server mapserver:80; } server { listen 80; server_name foo.bar.com; location / { root /web/; index index.html index.htm; } location /mapserver { proxy_pass

我有两个应用程序在docker ie中运行(mapserver和nginx)。我的nginx配置如下所示

upstream mapserver {
server mapserver:80;
}

server {

listen      80;
server_name foo.bar.com;
location / {
    root /web/;
    index index.html index.htm;
}

location /mapserver {
    proxy_pass http://mapserver/;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-for $remote_addr;
    port_in_redirect off;
    proxy_redirect  http://mapserver/ /mapserver/;
    proxy_connect_timeout 300;
}

}
如果我导航到并执行get capabilities请求,它会很好地工作,但是返回的HTML内容不会返回正确的URL


它回来了,但我希望它回来的是。代理\u重定向似乎不起作用或配置不正确。我如何修复它?

您是否在没有添加代理重定向的情况下尝试过它
proxy\u pass
应该足以将请求转发到映射服务器并获得响应。我认为proxy\u重定向在这种情况下没有任何作用。是的,我已经把它拿走了,get功能仅返回HTM中的$remote host,而不附加/MapServerMapServer。地图服务器是否查看传入url以生成缺少/mapserver的新url?mapserver本身不会,但为了将wms导入QGIS或Geoserver,它会传递get功能,这会导致由于使用此
proxy\u pass错误登录/mapservTryhttp://mapserver/mapserver
这将代理路径/mapserver上的映射服务器请求