当前位置: 首页 > news >正文

Nginx1.25 编译最新ngx_brotli问题记录

因为Nginx在1.25版本终于合并了HTTP/3 QUIC相关的内容,于是我打算升级博客目前所用的Nginx以支持HTTP/3协议

因为博客一直有使用ngx_brotli,所以这次安装时也拉取了最新的ngx_brotli模块,但在实际操作过程中发现之前的步骤似乎失效了,编译过程中会反复的出现同一个报错

-L/usr/local/lib -ljemalloc -Wl,-E -ldl -lpthread -lcrypt -L/usr/local/lib -lluajit-5.1 -lm -ldl -L/www/server/ngx_brotli/deps/brotli/c/../out -lbrotlienc -lbrotlicommon -lm pcre-8.43/.libs/libpcre.a /www/server/nginx/src/openssl/.openssl/lib/libssl.a /www/server/nginx/src/openssl/.openssl/lib/libcrypto.a -ldl -lpthread -lz -lxml2 -lxslt -lexslt -lgd \
-Wl,-E
/bin/ld: cannot find -lbrotlienc
/bin/ld: cannot find -lbrotlicommon
collect2: error: ld returned 1 exit status
make[1]: *** [objs/Makefile:440: objs/nginx] Error 1
make[1]: Leaving directory '/www/server/nginx/src'
make: *** [Makefile:10: build] Error 2

无奈之下去Google了相关信息,发现在23年9月有个issue和我一个报错

然后他给出的解决办法看起来相当的复杂,但仔细看项目首页的安装步骤,似乎只是新主线版本更改了安装步骤

那么新版本的安装过程如下

git clone --recurse-submodules -j8 https://github.com/google/ngx_brotli
cd ngx_brotli/deps/brotli
mkdir out && cd out
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_CXX_FLAGS="-Ofast -m64 -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections" -DCMAKE_INSTALL_PREFIX=./installed ..
cmake --build . --config Release --target brotlienc
cd ../../../..

gcc编译器必须大于10.2.1,低于或等于此版本在编译过程中会循环卡在以下的警告中

warning: 'memcpy' specified bound 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]

相关的issue可参考此问题:Warning: ‘memcpy’ specified bound between .... exceeds maximum object size · Issue #18738 · vlang/v (github.com)

剩下的步骤就和之前版本一样了,正常指定ngx_brotli目录即可

./configure --add-module=/path/to/ngx_brotli
make && make install

参考资料

  • google/ngx_brotli: NGINX module for Brotli compression (github.com)
  • Brotli 1.1.0 NginX · Issue #1087 · google/brotli (github.com)
  • Warning: ‘memcpy’ specified bound between .... exceeds maximum object size · Issue #18738 · vlang/v (github.com)
  • #オリジナル Buffer - 紺屋鴉江的插画 - pixiv
--- **原文链接:** [Rain's Blog](https://blog.im.ci/study-notes/linux-notes/1317/)
http://www.jsqmd.com/news/327547/

相关文章:

  • vue3-openlayers基础知识简介
  • 颠覆传统编程:MonkeyCode AI 让 AI 成为工程级研发的核心角色
  • AI应用架构师的创新思维:用伦理与治理塑造负责任的AI格局
  • 深入解析JDK1.8 HashMap优化之道
  • Docker-Compose限制容器CPU/内存使用小记
  • 大数据预处理:自动化数据增强技术解析
  • Java毕设项目:基于springboot+BS构架的失物招领系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • 为什么 AI 时代,SaaS 突然值钱了呢?
  • 网络安全入门基础-常用工具安装及使用(上)
  • Java毕设项目:基于Java的自驾游攻略查询系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 提示工程架构师:用户交互优化的最新技术
  • 【毕业设计】基于Java的自驾游攻略查询系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 前端新手必备:Gemini生成项目部署到Floudflare
  • 计算机Java毕设实战-基于springboot+BS构架的失物招领系统设计与实现失物信息管理【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java RESTful开发:从入门到精通
  • 2026年文博导览的新范式:从具身智能到知识共创的深度演进
  • Java计算机毕设之基于Java的自驾游攻略查询系统的设计与实现基于Java的自驾游攻略查询系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 深入解析Java栈帧机制
  • 学习日记day74
  • 全网最新免费降AI方法:工具+降AI工具实测
  • Excel MEDIAN函数终极指南:从基础语法到条件中值计算实战
  • 寒假学习10(HAL库1+模数电10)
  • Java毕设选题推荐:基于springboot+bs架构的浙江艾艺塑业设计公司网站设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 降AI率实操心得:5分钟搞定AI降重,从65%到14%的全过程复盘
  • 铁的居里点(770度就不被磁铁吸了)道理是什么?能不能精确计算出来?
  • 计算机Java毕设实战-基于springboot+bs架构的浙江艾艺塑业设计公司网站设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2026年最好用的5款降AI工具+免费降AI方法【建议收藏】
  • “光能智测”太阳能预测技术——融合WRF-Solar与多源数据的短-中长期预报实战
  • 降AI实测:从85%到个位数,我只用了这3招(附工具清单)
  • 【课程设计/毕业设计】基于springboot+BS构架的失物招领系统设计与实现失物发布、招领管理、感谢信发表【附源码、数据库、万字文档】