Plesk:如何将域端口 80 和 443 重定向到我的 Docker 容器?

Posted

技术标签:

【中文标题】Plesk:如何将域端口 80 和 443 重定向到我的 Docker 容器?【英文标题】:Plesk: how to redirect domain ports 80 and 443 to my Docker container? 【发布时间】:2021-12-03 16:02:17 【问题描述】:

我有一个 nginx 容器在我的 Plesk 的主机上运行,​​使用这个 docker compose 配置:

# docker-compose.yml
[...] 
web:
  build:
    context: .
    dockerfile: ./docker/web/DockerFile
  depends_on:
    - app
  ports:
    - 1080:80
    - 10443:443
  volumes:
    - .:/var/www/app
  restart: always

如果我使用特定端口访问主机就可以了:

https://example.com:10443

但我不知道如何进行正确的端口转发:

example.com:443 -> docker:10443 example.com:80 -> docker:1080

我知道快速回答是使用Proxy Rules,但它对我不起作用,我设置了这条规则:

但是 https 调用仍然没有转发到容器:

https://example.com(仍然打开 plesk 默认站点)

这行得通:

https://example.com:10443(打开nginx站点)

我要解决的另一个问题是代理规则只允许我为每个 URL 路由设置一个规则(即使端口不同),我需要为同一路由设置 2 个规则:

example.com:443 -> docker:10443 example.com:80 -> docker:1080

TL;TR:

如何将所有对 example.com/* 443 和 80 端口的请求转发到我的 docker 容器?

【问题讨论】:

【参考方案1】:

端口映射不正确,无法实现您的目标。

如何解决:

  ports:
    - 1080:80
    - 10443:443

应该改成

  ports:
    - 80:1080
    - 443:10443

原因: 在端口映射中,冒号左边是宿主机端口,冒号右边是容器端口。

【讨论】:

以上是关于Plesk:如何将域端口 80 和 443 重定向到我的 Docker 容器?的主要内容,如果未能解决你的问题,请参考以下文章

通过地址重写, 解决ingress在使用非标准端口(80, 443)时, 引起的重定向丢失端口问题

sh 本地开发端口将端口3080/3443重定向到80/443

apache安装了ssl,现要将80端口的http访问重定向到443端口的https,怎么办?

nginx-80重定向443

虚拟主机 - *.80 重定向有效,为啥 *.443 无效?

关闭端口80的nginx上的http和https重定向