我使用nginx作为我的多个dockerized容器的简单代理服务(包括带有nginx层的图像)。我正在尝试为每个分支创建vhost,这在这里造成了很多麻烦。我想要实现的是:
nginx代理服务应代理路径上的容器:
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;因为将来我会想要使用代理只有一个容器,所以在前端项目中配置整个站点代理会很奇怪。
干杯