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

Nginx配置:将Zabbix Web面板指向/zabbix子路径

解决Zabbix Web前端切换到/zabbix子路径的问题

你遇到的核心问题是:只调整Nginx配置不足以让Zabbix完全适配子路径,因为Zabbix自身会生成页面跳转和内部链接,必须同时修改Zabbix的Web配置文件,才能让所有链接都带上/zabbix前缀。以下是完整的解决步骤:

一、修正Nginx配置

替换原有的Nginx server块配置,确保/zabbix路径的请求正确映射到Zabbix文件目录,同时修正PHP-FPM的参数传递:

server {
    listen          8080;
    server_name     localhost;

    # 根路径返回403,禁止访问非Zabbix内容
    location / {
        return 403;
    }

    # Zabbix核心路径映射
    location /zabbix {
        alias /usr/share/zabbix;
        index index.php;

        # 处理静态文件与路由转发
        try_files $uri $uri/ /zabbix/index.php?$args;

        # 禁止访问敏感目录
        location ~ /\.ht {
            deny all;
        }

        location ~ /(api\/|conf[^\.]|include|locale) {
            deny all;
            return 404;
        }

        location /zabbix/vendor {
            deny all;
            return 404;
        }

        # 静态资源缓存优化
        location /zabbix/assets {
            access_log off;
            expires 10d;
        }

        # 图标文件处理
        location = /zabbix/favicon.ico {
            log_not_found off;
            alias /usr/share/zabbix/favicon.ico;
        }

        # PHP文件解析配置
        location ~ /zabbix/[^/]\.php(/|$) {
            alias /usr/share/zabbix;
            fastcgi_pass unix:/run/php-fpm/zabbix.sock;
            fastcgi_split_path_info ^(/zabbix/.+\.php)(/.+)$;
            fastcgi_index index.php;

            # 修正PHP脚本路径参数
            fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
            fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_path_info;

            include fastcgi_params;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;

            fastcgi_intercept_errors        on;
            fastcgi_ignore_client_abort     off;
            fastcgi_connect_timeout         60;
            fastcgi_send_timeout            180;
            fastcgi_read_timeout            180;
            fastcgi_buffer_size             128k;
            fastcgi_buffers                 4 256k;
            fastcgi_busy_buffers_size       256k;
            fastcgi_temp_file_write_size    256k;
        }
    }
}

配置说明:

  • 使用alias将/zabbix路径映射到Zabbix实际文件目录/usr/share/zabbix
  • 调整try_files规则,确保路由请求转发到/zabbix/index.php处理
  • 修改PHP块的路径匹配逻辑,保证PHP脚本能正确解析/zabbix前缀的请求

二、修改Zabbix Web配置文件

编辑Zabbix的Web配置文件(通常路径为/etc/zabbix/web/zabbix.conf.php),添加或修改基础路径参数:

// 指定Zabbix Web的子路径前缀
$ZBX_BASEPATH = '/zabbix';

如果配置文件中已存在$ZBX_BASEPATH,直接将其值修改为'/zabbix'即可。这一步是关键,它会让Zabbix生成的所有内部链接、跳转地址都自动带上/zabbix前缀。

三、重启服务生效

  1. 重启Nginx服务:
systemctl restart nginx
  1. 重启PHP-FPM服务(根据你的系统版本调整服务名):
systemctl restart php-fpm-zabbix

四、验证效果

  • 访问http://<host>:8080/zabbix,确认登录页面正常加载
  • 登录后检查页面跳转和所有内部链接,确认均以/zabbix为前缀(例如http://<host>:8080/zabbix/index.php)
  • 访问根路径http://<host>:8080/,确认返回403禁止访问

内容的提问来源于stack exchange,提问作者katatonic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:18:08