You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plesk环境下如何将域名80、443端口请求转发到Docker容器?

解决Plesk域名80/443端口全量转发到Docker容器的方案

前提准备

  • 确保example.com已经在Plesk面板中添加为站点,且域名解析指向当前服务器公网IP
  • 确认Docker容器的1080、10443端口在本地可正常访问,即curl http://127.0.0.1:1080、curl https://127.0.0.1:10443能正常返回站点内容

配置步骤(推荐用Plesk托管SSL证书方案,无需维护Docker内证书)

  1. 进入Plesk面板,打开example.com站点的Apache & Nginx设置页面
  2. 拉到页面底部的额外的Nginx指令输入框,粘贴以下配置:
location / {
    # 所有请求转发到Docker的1080端口,Plesk侧自动处理SSL加解密
    proxy_pass http://127.0.0.1:1080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    # 适配WebSocket场景,不需要可以删除
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
  1. 取消勾选页面中「由Nginx直接提供静态文件」的选项,避免Nginx优先处理静态资源不走转发规则
  2. 如果你需要自动将HTTP请求跳转HTTPS,勾选页面中的「将所有HTTP连接重定向到HTTPS」即可,Plesk会自动处理跳转逻辑
  3. 保存配置,等待10秒左右让Plesk重载Web服务,清理浏览器缓存后访问站点即可验证

若需要保留Docker内的HTTPS配置,转发443到10443端口

将上面的额外Nginx指令替换为以下内容即可:

if ($server_port = 80) {
    set $proxy_port 1080;
}
if ($server_port = 443) {
    set $proxy_port 10443;
}
location / {
    proxy_pass http://127.0.0.1:$proxy_port;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

原Proxy Rules不生效的原因

Plesk自带的Proxy Rules功能限制同一路径仅能配置1条规则,且规则优先级低于站点默认的Web服务配置,仅适合路径拆分转发的场景,不支持全站点多端口转发需求,因此直接配置不生效。

内容的提问来源于stack exchange,提问作者fguillen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:48:01