宝塔面板博客官方技术博客
宝塔面板

服务器已经装了 Nginx,怎么让宝塔面板接管统一管理?

想在不重装、不动现有网站配置的前提下,把服务器上已经装好的 Nginx 交给宝塔面板统一管理,用面板 v11.6 起新增的「Nginx 接管」功能就能做到。它通过自动解析原生配置文件,把本机用源码编译、yum/apt 安装、手动解压等方式部署的 Nginx 纳入面板,无需卸载原有服务、无需修改网站配置,也不影响原有业务运行。

Nginx 接管解决什么问题?

服务器上通过源码、yum、apt 等方式装的 Nginx,之前只能靠命令行手工维护,配置分散、操作繁琐,还容易和面板管理的其他站点产生配置冲突。接管后能在面板里统一完成:

  • Nginx 配置编辑、服务启停/重启
  • 实时状态监控、日志在线查看
  • 版本平滑升级、扩展模块管理

该功能为面板 v11.6 版本新增特性。

接管前先做一件事:快照备份

接管过程涉及强制安装,存在一定风险,动手前务必先创建服务器快照备份,出问题能回滚。

下面以「Debian 12 + apt 安装的 Nginx v1.22.1」为例,走一遍完整流程。

可视化接管步骤

  1. 安装面板。安装过程中检测到现有 Web 环境时,输入 yes 执行强制安装。

    重要提醒:强制安装存在一定风险,接管前务必创建服务器快照备份。

  2. 面板安装完成后,通过服务器外网 IP 访问面板并登录。

  3. 登录后忽略【安装 LNMP 环境】提示,点击右上角关闭按钮。

  4. 点击左侧菜单栏【网站】,选择【接管本地 nginx】。

选择接管本地 nginx

  1. 在列表中选择本地已安装的 Nginx 版本(本例为 v1.22.1)。

  2. 点击【安装 nginx】。

  3. 按需选择目标版本及安装方式,本例选择 1.28.1 版本安装。

    推荐选择编译模式,业务运行更稳定。

  4. 等待安装完成,面板会自动解析原有所有站点配置。

面板自动解析站点配置

  1. 选择需要接管的网站,点击【保存选中网站】。
  2. 配置保存完成后,检查面板 Nginx 状态是否正常。若状态为关闭,需在终端手动停止系统中原有的 Nginx,避免端口冲突,也可以手动修改端口后再启动:
# 停止系统安装的 Nginx
systemctl stop nginx
# 检查是否还有残留进程
ps aux | grep nginx
# 如仍有残留进程,强制终止
pkill -9 nginx
  1. 返回面板,手动启动 Nginx 服务。

手动启动 Nginx 服务

  1. 启动成功后,在【HTML 项目】中可以看到已接管的网站。

接管失败怎么办?用手动脚本接管

除面板可视化接管外,也可以直接执行接管脚本,脚本为交互式操作,简单易上手:

btpython /www/server/panel/script/nginx_site_helper.py

脚本会列出本机所有 Nginx 实例,让你输入编号选择要接管的实例,再确认保存解析到的网站配置。

脚本未检测到 Nginx、或多版本 Nginx 共存时,先拿到 Nginx 可执行文件的绝对路径,再指定路径接管:

which nginx
# 示例输出
/usr/sbin/nginx

# 指定路径接管
btpython /www/server/panel/script/nginx_site_helper.py -b /usr/sbin/nginx

撤销接管、恢复原生配置:

btpython /www/server/panel/script/nginx_site_helper.py recovery

查看接管脚本帮助:

btpython /www/server/panel/script/nginx_site_helper.py -h

常见问题

宝塔面板的 Nginx 接管功能是什么?哪个版本有?

Nginx 接管功能从面板 v11.6 版本开始提供,用来统一管控本机通过源码编译、yum/apt 命令安装、手动解压部署等非面板方式安装的 Nginx,无需卸载原有服务、无需修改网站配置,通过自动解析原生配置文件完成接管。

接管前需要备份吗?

需要。接管过程涉及强制安装,存在一定风险,动手前务必先创建服务器快照备份,出问题才能回滚。

接管后 Nginx 状态显示关闭、提示端口冲突怎么办?

通常是因为系统中原有的 Nginx 仍在运行、端口被占用。在终端执行 systemctl stop nginx 停止系统安装的 Nginx,再用 ps aux | grep nginx 检查残留进程,如有残留用 pkill -9 nginx 强制终止,然后回面板手动启动 Nginx;也可以手动修改端口后再启动。

面板可视化接管失败,能手动接管吗?

能。执行 btpython /www/server/panel/script/nginx_site_helper.py 运行交互式接管脚本,按提示选择要接管的 Nginx 实例并确认保存解析到的网站配置即可。

多版本 Nginx 共存时怎么指定接管哪一个?

先用 which nginx 拿到目标 Nginx 可执行文件的绝对路径,再执行 btpython /www/server/panel/script/nginx_site_helper.py -b /usr/sbin/nginx 指定路径接管。

怎么撤销接管、恢复原来的 Nginx 原生配置?

执行 btpython /www/server/panel/script/nginx_site_helper.py recovery 即可恢复原生配置、撤销接管。