宝塔面板绑定域名(不带端口)

宝塔面板绑定域名(不带端口)

需求 :使用https://bt.example.top/259f48d3https://12.15.75.51:35123/259f48d3 访问面板。

因为宝塔面板本身占用了一个端口(35123),而 80/443 端口通常被 Nginx 占用用来跑网站。为了解决冲突并隐藏端口,因此需要使用反向代理

请严格按照以下步骤操作,因为这涉及到面板的连接,配置错了可能会导致你连不上面板(如果连不上了,记得去云厂商后台用 SSH 命令行通过 bt 命令修复)。


准备工作:DNS 解析

确保 bt.example.top 已经在阿里云/腾讯云的 DNS 解析里,A 记录指向了 12.15.75.51


第一步:关闭"面板 SSL"(必须)

因为你要通过 Nginx 反向代理(外部由 Nginx 处理 HTTPS),如果面板内部也开着 HTTPS,Nginx 转发给面板时容易出现 SSL 握手失败(502 错误)。

  1. 先用老方法(IP:端口)登录面板。
  2. 进入 "面板设置"
  3. 找到 "面板SSL" ,如果是开启的,先关闭
    • 注意:关闭后,你暂时需要用 http://12.15.75.51:35123/... 访问面板,浏览器会提示不安全,先忽略它。

第二步:新建一个"壳"网站

我们需要让 Nginx 接管 bt.example.top 的 80/443 请求。


具体怎么申请证书这里就不详细描述了

  1. 在宝塔点击 "网站" -> "添加站点"
  2. 域名 :填写 bt.example.top
  3. 反向代理
  4. 提交。
  5. 申请 SSL
    • 在网站列表点击该域名的"设置" -> "SSL" -> "Let's Encrypt" -> 申请并开启"强制 HTTPS"。
    • 这一步是为了让你能用 https://bt.example.top 访问。

此时,你应该可以通过 https://bt.example.top/259f48d3 访问面板了。
但是! 此时面板里的 "终端"(SSH 功能)可能是无法使用的,因为反向代理有的不支持 WebSocket。如果你的代理中没有对websocket支持,你需要进行第四步。


第四步:修改配置文件(修复终端无法连接问题)

为了让面板里的 SSH 终端能用,必须修改 Nginx 配置文件。

  1. 在刚才的"反向代理"界面,点击刚才添加的代理右边的 "配置文件"(是一个小铅笔图标或者直接在列表里找"配置文件")。
  2. 你会看到类似下面的代码,你需要把它们全部替换为下面的代码(或者手动添加 WebSocket 支持部分):

直接复制并替换成以下内容(请仔细核对端口号):

nginx 复制代码
#PROXY-START/
location /
{
    # 你的面板端口是 35123
    proxy_pass http://127.0.0.1:35123;
    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 REMOTE-HOST $remote_addr;

    # === 关键:添加 WebSocket 支持 ===
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    # ===============================

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
    set $static_file2 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        set $static_file2 1;
        expires 12h;
    }
    if ( $static_file2 = 0 )
    {
        add_header Cache-Control no-cache;
    }
}
#PROXY-END/
  1. 点击 "保存"

第五步:验证访问

现在,你就可以使用完美的域名访问了:

  • 访问地址https://bt.example.top/259f48d3
    • 注意:后面的安全入口 /259f48d3 依然是必须的,除非你在面板设置里把它关掉(不推荐关掉,为了安全)。
  • 无需端口:不需要输入 :35123。
  • SSL:由网站层面的 Let's Encrypt 保护,浏览器显示绿锁。

⚠️ 重要警告

  1. 关于"面板设置"里的"域名"

    在面板原本的"设置"里,有一个"绑定域名"的选项。既然你用了反向代理,那个地方建议留空,或者填 127.0.0.1 如果你在那里也填了 bt.example.top,有时候会造成死循环或鉴权错误,因为面板发现请求来自 127.0.0.1(即 Nginx),但你却绑定了公网域名,它可能会拦截。

    • 如果访问报错"请使用正确的入口",请检查你的安全入口字符串是否正确。
  2. 如果以后面板打不开了

    因为改了代理配置,万一弄错了进不去面板,请使用 SSH 工具(如 XShell、Putty)连接服务器,输入命令 bt,然后选择 14 (查看面板默认信息) 或 1 (重启面板) 来排查问题。

相关推荐
2301_772204282 小时前
Linux内核驱动--设备驱动
linux·运维·服务器
郝学胜-神的一滴2 小时前
跨平台通信的艺术与哲学:Qt与Linux Socket的深度对话
linux·服务器·开发语言·网络·c++·qt·软件构建
杜子不疼.2 小时前
【Linux】库制作与原理(一):静态库的制作与使用
linux·运维·服务器·开发语言
野犬寒鸦3 小时前
从零起步学习并发编程 || 第四章:synchronized底层源码级讲解及项目实战应用案例
java·服务器·开发语言·jvm·后端·学习·面试
Web项目开发4 小时前
Dockerfile创建Almalinux9镜像
linux·运维·服务器
pride.li11 小时前
开发板和Linux--nfs服务挂载
linux·运维·服务器
looking_for__11 小时前
【Linux】应用层协议
linux·服务器·网络
打码人的日常分享12 小时前
智能制造数字化工厂解决方案
数据库·安全·web安全·云计算·制造
云泽80812 小时前
不止是命令:Linux 高频指令实战 + 芯片架构底层逻辑
linux·运维·服务器