nginx和docker:正确地路由来自每个服务的所有请求

时间:2017-01-20 21:08:57

标签: nginx docker docker-compose nginx-location

我在docker中运行了几个服务(使用docker-compose),每个服务都在自己的容器中。

我使用的是nginx作为代理服务器。

部分nginx.conf

upstream a_servers {
    server a:8080;
}

upstream b_servers {
    server b:8080;
}
server {
    location / {

        proxy_pass         http://a_servers/;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;

    }

    location /b {

        proxy_pass         http://b_servers;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }
}

问题:

这两项服务都需要加载自己的/js/build.js文件。但是,当服务b发出/js/build.js请求时,nginx会将其路由到第一个选项,并从服务a请求build.js。

有没有办法将/b添加到来自服务b的所有请求中?另外,我想要做的是什么名字?

0 个答案:

没有答案