Nginx 是否可以在ngninx反向代理docker上以友好方式添加位置? 基础设施

Nginx 是否可以在ngninx反向代理docker上以友好方式添加位置? 基础设施,nginx,docker-compose,reverse-proxy,Nginx,Docker Compose,Reverse Proxy,我要创建具有以下结构的docker: 我想要一个docker compose,里面有3个主映像(一个数据库、8080端口上的一个api和443端口上的一个前端)。除此之外,我还有两个额外的docker compose,它们代表其他服务 功能 我正在寻找的功能是能够从nginx反向代理(主docker compose)中创建secundary docker compose文件的容器实例,并将该端口映射到唯一的子目录(能够创建同一docker compose的多个实例很重要) 我发现了什么 要完成已

我要创建具有以下结构的docker: 我想要一个
docker compose
,里面有3个主映像(一个数据库、8080端口上的一个api和443端口上的一个前端)。除此之外,我还有两个额外的docker compose,它们代表其他服务

功能 我正在寻找的功能是能够从nginx反向代理(主docker compose)中创建secundary docker compose文件的容器实例,并将该端口映射到唯一的子目录(能够创建同一docker compose的多个实例很重要)

我发现了什么 要完成已找到的其他功能,请参阅一些资源:


使用traefik解决了这个问题,它允许我在不修改构建配置的情况下按子目录向容器添加路由

docker compose.yml的
代码如下:

版本:“3.7”
服务:
特拉菲克:
图片:traefik:v2.2.0
端口:
-“${FRONT_HTTP_端口:-80}:80”
-“${TRAEFIK_端口:-8080}:8080”
环境:
-TRAEFIK_LOG_LEVEL=调试
-TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT=false
-TRAEFIK_PROVIDERS_DOCKER=true
-TRAEFIK\u提供者\u DOCKER\u网络=traefik01
-TRAEFIK_API_unsecure=true
-TRAEFIK\u入口点\u前部=真
-TRAEFIK_入口点_前端地址=:${FRONT_HTTP_端口:-80}
卷数:
-/var/run/docker.sock:/var/run/docker.sock:ro
安全选项:
-标签:类型:docker\u t
前端:
构建:/前端
揭露:
- 80
标签:
-“traefik.enable=true”
-“traefik.http.routers.frontend.entrypoints=front”
-“traefik.http.routers.frontend.rule=PathPrefix(`/frontend{regex:$$$|/.}`)”
-“traefik.http.routers.frontend.middleware=frontend stripprefix”
-“traefik.http.middleware.frontend stripprefix.stripprefix.prefixes=/frontend”
-“traefik.http.routers.frontend.priority=2”
#-“traefik.http.routers.frontend.priority=1”
#-“traefik.frontend.rule=Host:ctf.itasahobby.com”
标准开放:正确
应用程序编程接口:
构建:./api
揭露:
- 80
链接:
-数据库
标签:
-“traefik.enable=true”
-“traefik.http.routers.api.entrypoints=front”
-“traefik.http.routers.api.rule=PathPrefix(`/api{regex:$$$|/.*}`)”
-“traefik.http.routers.api.middleware=api stripprefix”
-“traefik.http.middleware.api stripprefix.stripprefix.prefixes=/api”
-“traefik.http.routers.api.priority=2”
数据库:
构建:/数据库
重新启动:始终
网络:
违约:
外部:
名称:testnetwork
然后,要添加新容器,它必须包含相同的网络接口和标签,以便设置路由,例如:

版本:“3.7”
服务:
附录2:
图片:httpd:2.4.41-1
揭露:
- 80
标签:
-“traefik.enable=true”
-“traefik.http.routers.app2.entrypoints=front”
-“traefik.http.routers.app2.rule=PathPrefix(`/app2{regex:$$$$\124;/.*}`)”
-“traefik.http.routers.app2.middleware=app2 stripprefix”
-“traefik.http.middleware.app2 stripprefix.stripprefix.prefixes=/app2”
网络:
违约:
外部:
名称:testnetwork