用于多分支环境的Nginx代理

时间:2018-04-23 16:17:57

标签: docker nginx proxy

我使用nginx作为我的多个dockerized容器的简单代理服务(包括带有nginx层的图像)。我正在尝试为每个分支创建vhost,这在这里造成了很多麻烦。我想要实现的是:

nginx代理服务应代理路径上的容器:

  • [branch_name] .a.xyz.com(前端容器)
  • some-jenkins.xyz.com(另一个容器)
  • 其他一些尚不存在的容器
代理容器中的

nginx.conf:

upstream frontend-branch {                                          
  server frontend:80;                                            
}     

server {                                                            
  listen 80;                                                      
  server_name ~^(?<branch>.*)\.a\.xyz\.com;

  location / {                                                    
    proxy_pass http://frontend-branch; 
  }                                                               
}                                                                   
前端容器中的

nginx.conf:

server {
  listen 80;

  location / {
    root /www/html/branches/some_default_branch
  }
}

server {
  listen 80;

  location ~^/(?<branch>.*)$ {
    root /www/html/branches/$branch
  }
}

docker-compose for proxy:

version: "2.0"
services:
  proxy:
    build: .
    ports:
      - "80:80"
    restart: always

networks:
  default:
    external:
      name: nginx-proxy

在前端项目中,它看起来几乎相同,除了服务名称和ofc端口(81:80)。

有没有办法通过&#34;通过&#34;分支作为前端容器的路径(例如,一些前端:80 / $分支)?

甚至可以创建那种代理吗?我不想使用基于nginx的相同图像作为代理和“前端”管理员#39;因为将来我会想要使用代理只有一个容器,所以在前端项目中配置整个站点代理会很奇怪。

干杯

0 个答案:

没有答案