宝塔面板支持四种批量配置Nginx方法:一、修改默认模板并同步;二、创建命名模板批量绑定;三、CLI脚本注入配置片段;四、用include复用外部.conf文件。

如果您是宝塔面板的进阶用户,希望在多个网站中统一应用自定义的 Nginx 配置规则(如强制 HTTPS、防盗链、CSP 头、Gzip 压缩优化等),直接逐个编辑站点配置效率低下且易出错。宝塔提供基于模板的批量配置机制,可通过修改默认或自定义 Nginx 模板实现一次性生效。以下是具体操作路径与方法:
一、使用默认站点模板批量覆盖
宝塔将新创建网站的 Nginx 配置依据“默认站点模板”生成。修改该模板后,所有后续新建站点自动继承变更;对已有站点,可通过“一键同步”功能批量重写配置文件,不丢失已添加的 location 块以外的手动配置。
1、登录宝塔面板,进入【网站】→【设置】→【配置模板】→【Nginx】。
2、在右侧列表中找到并点击【默认站点模板】进行编辑。
3、在 server 块内、location / 块上方插入所需指令,例如:
add_header X-Content-Type-Options "nosniff" always;
gzip_vary on;
4、点击【保存】,返回网站列表,勾选多个目标站点,点击【批量操作】→【同步配置到所选网站】。
二、为现有站点创建独立模板并批量绑定
当不同业务线需差异化配置(如 API 站点启用 CORS,静态资源站启用长缓存)时,可建立多个命名模板,并通过命令行或面板界面批量指定站点使用对应模板,避免混用冲突。
1、在【配置模板】→【Nginx】页面点击【添加模板】,输入名称如“API-Template”,选择类型为【网站模板】。
2、在编辑区粘贴完整 server 块结构,确保包含 listen、server_name 占位符(宝塔会自动替换为实际域名),并在适当位置加入:
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET,POST,OPTIONS" always;
3、保存模板后,在网站列表中全选需应用该模板的站点,点击【批量操作】→【更换模板】→ 选择“API-Template” → 【提交】。
三、通过 CLI 脚本批量注入配置片段
对于已部署大量站点且需在不重写整个 server 块的前提下追加特定指令(如统一添加 WAF 规则或日志格式),可利用宝塔内置的 nginx -t 校验机制与 sed 命令,安全地向各站点 conf 文件末尾的 location / 块内插入内容。
1、执行命令进入站点配置目录:
cd /www/server/panel/vhost/nginx/
2、运行以下脚本(以添加统一 Referer 白名单为例):
for conf in *.conf; do sed -i '/location //a if ($http_referer !~ ^(https?://(www\.)?yourdomain\.com|https?://yourapi\.com)/.*$) { return 403; }' "$conf"; done
3、校验全部配置语法:
nginx -t
4、若输出 success,则重载服务:
bt reload
四、利用 include 指令复用外部配置文件
将通用配置(如 SSL 参数、限速规则、安全头)抽离为独立 .conf 文件,再通过 include 引入各站点配置,便于集中维护。此方式支持跨模板复用,且不影响宝塔图形化编辑逻辑。
1、创建共享配置文件:
echo "add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains' always;" > /www/server/panel/vhost/nginx/include/security.conf
2、编辑任一网站配置文件(如 /www/server/panel/vhost/nginx/example.com.conf),在 server 块首行下方插入:
include /www/server/panel/vhost/nginx/include/security.conf;
3、对其他站点重复步骤 2,或结合步骤三的 sed 命令批量注入 include 行。
4、执行 nginx -t && bt reload 完成生效。










