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

rt4zxlrg  于 2022-10-23  发布在  Docker
关注(0)|答案(1)|浏览(227)

我有一个简单的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

它可以工作(Map到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<->来Mapports定义。

curl 测试

从主持人的Angular 来说,我可以成功地取得成功。我也可以使用主机的IP(192.168.1.100:9999)浏览网站。

标签traefik端口

我确实尝试添加了traefik.port=9999标签,但没有成功

移除标签均衡器

如果我去掉"traefik.http.services.resumecv-backend.loadbalancer.server.port=9999"标签,我得到一个简短的404 Not Found。

bq3bfh9z

bq3bfh9z1#

港口出版...

ports:
  - "9999:80"

...不会更改容器正在侦听的端口。它只是建立了从host到容器的Map。您的服务仍在侦听端口80,其他容器--包括traefik--将需要使用该端口来联系您的服务。
如果您使用的是像traefik这样的前端,则不需要ports条目(因为您将通过traefik而不是直接通过主机端口访问服务)。

相关问题