宝塔拨测博客拨测技术博客
宝塔面板

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

服务器上原本就用源码编译、yum 或 apt 装好了 Nginx,想在宝塔面板里统一管理,不必卸载重装。宝塔面板 11.6 起新增了 Nginx 接管功能,能自动解析原生配置文件,把本机非面板安装的 Nginx 服务纳入面板统一管理,无需卸载原有服务、无需修改网站配置、不影响现有业务(见宝塔面板 Nginx 接管本机已装 Nginx)。

Nginx 接管能解决什么问题

多方式部署 Nginx 常带来管理分散、操作繁琐、配置冲突混乱的问题。接管的核心作用,是把本机「非面板安装」的 Nginx 统一管控起来,接管后可以在面板里完成这些操作:

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

怎么接管:网站 → 接管本地 nginx

  1. 登录宝塔面板,点击左侧菜单栏的网站,选择接管本地 nginx。

    选择接管本地 nginx

  2. 在列表中选择本地已安装的 Nginx 版本,点击安装 nginx,再按需求选择目标版本及安装方式。

  3. 等待安装完成,面板会自动解析原有所有站点配置,然后选择需要接管的网站,点击保存选中网站。

    保存选中网站

  4. 保存完成后,在HTML 项目中即可看到已接管的网站。

    HTML 项目中显示已接管的网站

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

接管后端口冲突怎么处理

配置保存后,先检查面板 Nginx 状态是否正常。若状态为关闭,通常是系统中原有的 Nginx 服务还在占用端口,需要先停掉原服务、再回面板启动:

# 停止系统安装的 Nginx
systemctl stop nginx
# 检查是否还有残留进程
ps aux | grep nginx
# 如仍有残留进程,强制终止
pkill -9 nginx

停掉原服务后,返回面板手动启动 Nginx 服务即可。

接管失败时用手动脚本

除面板可视化接管外,也可以手动执行接管脚本,交互式操作:

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

脚本会列出检测到的 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

接管属于对现有环境的变更操作,动手前建议先创建服务器快照备份,出问题可以快速回滚。

常见问题

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

用面板 11.6 新增的「Nginx 接管」功能:点击左侧「网站」,选「接管本地 nginx」,在列表里选本机已装的 Nginx 版本,点「安装 nginx」选目标版本和安装方式,面板会自动解析现有站点配置,再保存选中网站即可。

接管本机 Nginx 需要先卸载原有 Nginx 吗?

不需要。接管功能会自动解析原生配置文件,无需卸载原有服务、也无需修改网站配置,就能把本机非面板安装的 Nginx 纳入面板统一管理。

接管后能在面板里做什么?

接管后可在面板完成 Nginx 配置编辑、服务启停/重启、实时状态监控、日志在线查看、版本平滑升级与扩展模块管理等全功能管理。

接管后 Nginx 状态是关闭的,端口冲突怎么办?

如果接管后面板 Nginx 状态显示关闭,多半是系统原有的 Nginx 还在占用端口。在终端执行 systemctl stop nginx 停止原服务,再用 ps aux | grep nginx 确认无残留进程后,回面板手动启动 Nginx 即可。

面板接管失败了怎么办?

可以手动执行接管脚本 btpython /www/server/panel/script/nginx_site_helper.py,按交互提示选择 Nginx 实例并保存网站;多版本共存或脚本检测不到 Nginx 时,先 which nginx 拿到绝对路径,再加 -b 参数指定路径执行。

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

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