部署Next.js/React应用至Hostinger VPS时Nginx Brotli指令报错求助
解决Nginx中Brotli指令未知的问题
问题根源
出现unknown directive "brotli"错误,核心原因是Nginx未加载Brotli模块——要么模块未安装,要么安装后未在配置中启用。AlmaLinux 8默认软件源中的Nginx不包含Brotli模块,直接安装常规包无法解决问题。
解决步骤
1. 安装带Brotli模块的Nginx
默认AppStream源的Nginx不带Brotli,需改用Nginx官方源的预编译包:
- 卸载现有Nginx避免冲突:
sudo dnf remove nginx -y - 安装Nginx官方源:
sudo dnf install https://nginx.org/packages/almalinux/8/noarch/RPMS/nginx-release-almalinux-8-1.el8.ngx.noarch.rpm -y - 安装含Brotli模块的Nginx:
sudo dnf install nginx-module-brotli -y
2. 启用Brotli模块
编辑Nginx主配置文件/etc/nginx/nginx.conf,在http块前添加模块加载指令:
sudo nano /etc/nginx/nginx.conf
在文件开头插入:
load_module modules/ngx_http_brotli_filter_module.so; load_module modules/ngx_http_brotli_static_module.so;
保存退出(按Ctrl+O回车确认,Ctrl+X退出)。
3. 校验Brotli配置
检查/etc/nginx/conf.d/brotli.conf的格式正确性,示例有效配置如下:
brotli on; brotli_types text/plain text/css application/javascript application/json image/svg+xml; brotli_comp_level 6;
4. 测试并重启Nginx
- 测试配置合法性:
sudo nginx -t - 测试通过后重启Nginx:
sudo systemctl restart nginx
Plesk环境额外注意事项
由于服务器搭载Plesk,需防止配置被面板覆盖:
- 登录Plesk面板,进入工具与设置 > Web服务器设置,确认Nginx允许加载第三方模块。
- 若全局配置易被Plesk覆盖,可在域名的Apache & Nginx设置 > 附加Nginx指令中添加Brotli配置,保障配置持久生效。
内容的提问来源于stack exchange,提问作者sunaina
相关产品推荐
相关产品推荐

