如何将多个主机从流量2引导到一个nginx



我想路由test1。Test和test2。在nginx PHP配置中使用traefik 2测试不同的文件夹。都是PHP应用程序。

这是我的nginx site.conf:

server {
listen 80;
server_name test1.test
root /var/www/html/test1;
}
server {
listen 80;
server_name test2.test
root /var/www/html/test2;
}

,这里是为流量容器的mij docker-compose文件

version: "3"
services:
traefik:
image: "traefik:v2.3"
container_name: "traefik"
restart: "unless-stopped"
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- ./traefik.toml:/traefik.toml:ro
- ./acme.json:/acme.json
- ./configurations:/configurations
networks:
proxy:
external: true
internal:
external: false

和我的应用程序的docker-compose

version: "3"
services:
nginx:
image: nginx:latest
container_name: test_nginx
links:
- php
volumes:
- ./nginx/server.conf:/etc/nginx/nginx.conf:ro
- ./nginx/site.conf:/etc/nginx/conf.d/default.conf:ro
- ../../src:/var/www/html
networks:
- proxy
- internal
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.nginx.entrypoints=web"
- "traefik.http.routers.nginx.rule=Host(`test1.test`) || Host(`test2.test`)"
php:
build: ./php
container_name: test_php
ports:
- "9000:9000"
volumes:
- ../../src:/var/www/html
networks:
- internal

我的hostsfile已经设置好并指向localhost (172.0.0.1)

但是在浏览的时候test1。本地它给出404文件未找到浏览到test2。

我想做的是基本上有一个traifk2,一个nginx和多个drupal站点之后。

有人能解释我如何有2个主机指向相同的nginx和重定向到正确的文件夹?谢谢你。

更新标签

"traefik.http.routers.nginx.rule=Host(`test1.test`) || Host(`test2.test`)"

"traefik.http.routers.nginx.rule=Host(`test1.test`,`test2.test`)"

最新更新