Traefik Docker代理-无法更改PHP Apache的侦听端口



我有一个简单的PHP Laravel docker镜像,最后用PHP Apache创建,在端口80上侦听(默认情况下(。

我有一个Docker Traefik安装,它通过HTTPS(443端口(运行得很好。

现在,如果我使用以下docker-compose.yml进行laravel安装:

version: "3.8"
services:
resumecv:
image: sineverba/resumecv-backend:0.1.0-dev
container_name: resumecv
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.resumecv-backend.entrypoints=websecure"
- "traefik.http.routers.resumecv-backend.service=resumecv-backend"
- "traefik.http.routers.resumecv-backend.rule=Host(`resumecvbackend.example.com`)"
- "traefik.http.services.resumecv-backend.loadbalancer.server.port=80"
networks:
proxy:
external: true

它工作(映射到80端口(。

如果我要更改侦听端口:

version: "3.8"
services:
resumecv:
image: sineverba/resumecv-backend:0.1.0-dev
container_name: resumecv
networks:
- proxy
ports:
- "9999:80"
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.resumecv-backend.entrypoints=websecure"
- "traefik.http.routers.resumecv-backend.service=resumecv-backend"
- "traefik.http.routers.resumecv-backend.rule=Host(`resumecvbackend.example.com`)"
- "traefik.http.services.resumecv-backend.loadbalancer.server.port=9999"
networks:
proxy:
external: true

我从Cloudflare得到了一个坏网关(无法访问服务(。

我知道我可以更改容器内部的Apache端口,但我会使用out&lt->在与CCD_ 1定义的映射中。

卷曲试验

从主机上,我可以成功地curl http://127.0.0.1:9999。我也可以使用主机的IP(192.168.1.100:9999(浏览网站。

traefik端口标签

我确实尝试添加traefik.port=9999标签,但没有运气

卸下标签平衡器

如果我删除"traefik.http.services.resumecv-backend.loadbalancer.server.port=9999"标签,我会得到一个未找到的简洁404。

端口发布。。。

ports:
- "9999:80"

不会更改容器正在侦听的端口。它只是建立一个从主机到容器的映射。您的服务仍在监听端口80,这是其他集装箱(包括河豚(联系您的服务时需要使用的端口。

如果您使用的是像traefik这样的前端,则不需要ports条目(因为您将通过traefik而不是直接通过主机端口访问服务(。

最新更新