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

如何为/etc/nginx/sites-available下所有server块全局添加异常处理器配置

全局配置Nginx 403自定义错误页的方法

为什么之前的尝试无效

你的custom_exception.conf中包含location指令,而Nginx不允许在http块下直接定义location(location仅能在server或嵌套的location块内使用),因此直接在http块include该配置会无效,甚至可能导致Nginx启动失败。而在http块新增独立server块include的话,该server仅作为默认站点,不会影响其他已配置站点的403错误处理逻辑。

可行的全局解决方案

方案1:批量给所有站点配置添加include语句

通过命令行工具批量修改,无需手动逐个编辑上百个站点文件:

  1. 执行批量插入命令:
sed -i '/^server {/a include /etc/nginx/snippets/custom_exception.conf;' /etc/nginx/sites-available/*

该命令会在每个配置文件的server {行下方自动插入include语句。
2. 验证配置有效性并重新加载Nginx:

nginx -t && systemctl reload nginx

方案2:调整全局错误页配置(无需修改站点文件)

如果不想改动任何站点配置文件,可以通过全局内部跳转逻辑实现:

  1. 编辑/etc/nginx/nginx.conf,在http块内添加:
error_page 403 @forbidden;
  1. 在配置中添加(或修改已有)默认server块,定义命名location处理403请求:
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    location @forbidden {
        root /usr/share/nginx/html;
        return 403 /403.html;
    }
}
  1. 验证并重新加载配置:
nginx -t && systemctl reload nginx

注:如果某个站点的server块中已自行定义error_page 403规则,会覆盖该全局配置。

内容的提问来源于stack exchange,提问作者Midun Mano M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:13:31