我正在使用Vagrant
, Docker
和NGINX
(以及其他工具)来设置我们的开发环境。
我们有一个通用的微服务架构,我们使用每个微服务的容器。
作为一个概念certificate,我正在使用两个testing微服务来试图找出开发环境a
和b
。
我们运行三个容器( nginx,a,b
)是为了certificate我的概念。
http://localhost:8181/a/ proxies request to the IP address of container 'a'
http://localhost:8181/b/ proxies request to the IP address of container 'b'
为此,我想把每个服务nginxconfiguration的pipe理延迟到这个服务本身。 希望这将允许每个服务添加/删除/修改条目到与容器和主机操作系统共享的/etc/nginx/sites-available
卷。
例如,我认为在NGINX中我需要以下结构
/etc/nginx - nginx.conf - sites-available - a - b - sites-enabled - a (sym link to sites-available/a) - b (sym link to sites-available/b)
nginx.conf
文件如下所示:
worker_processes 4; events { worker_connections 1024; } http { include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
假设当我拉a
和b
的容器的IP地址,我得到以下
a -> 172.17.0.1
b -> 172.17.0.2
而且我有a
容器暴露端口1234
和容器b
暴露端口5678
,那么a
和b
文件应该在sites-available
下sites-available
?
我尝试了以下和类似的变化,但似乎无法让它使用BOTH /a
和/b
代理。
摘自/ etc / nginx / sites-available / a
server { listen 80; location /a/ { proxy_pass http://172.17.0.1:1234/; } }
摘自/ etc / nginx / sites-available / b
server { listen 80; location /b/ { proxy_pass http://172.17.0.2:5678/; } }
例如,使用这个configuration,结果如下
http://localhost:8181/a/ proxies to container 'a' just fine
http://localhost:8181/b/ gives a connection refused