Kwi*_*ies 3 php drupal nginx docker traefik
我想使用 traefik 2 将 test1.test 和 test2.test 路由到 nginx php 配置中的不同文件夹。两者都是 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;
}
Run Code Online (Sandbox Code Playgroud)
这是 traefik 容器的 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
Run Code Online (Sandbox Code Playgroud)
以及我的应用程序的 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
Run Code Online (Sandbox Code Playgroud)
我的主机文件已全部设置并指向本地主机(172.0.0.1)
但是,当浏览到 test1.local 时,它会给出 404 文件未找到,浏览到 test2.test 会给出 404 未找到 nginx。
我想做的基本上就是拥有一个 traefik2、一个 nginx 以及后面的多个 drupal 站点。
有人可以解释一下如何让 2 个主机指向同一个 nginx 并重定向到正确的文件夹吗?谢谢。
小智 10
更新您的标签
"traefik.http.routers.nginx.rule=Host(\`test1.test\`) || Host(\`test2.test\`)"
Run Code Online (Sandbox Code Playgroud)
到
"traefik.http.routers.nginx.rule=Host(\`test1.test\`,\`test2.test\`)"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8984 次 |
| 最近记录: |