Nginx 源码编译安装(含第三方模块)完整笔记
Nginx 源码编译安装含第三方模块完整笔记适用系统CentOS / RHEL 7目标编译安装 Nginx并集成echo-nginx-module第三方模块安装目录/usr/local/nginx源码目录/usr/local/src一、环境准备目的安装编译工具和依赖库确保后续操作不报错。# 安装基础编译工具和必需的开发库yuminstall-ygccmakepcre-devel zlib-devel openssl-develgitwget解释gccC编译器make构建工具pcre-devel支持正则表达式Nginx rewrite 模块需要zlib-devel支持压缩gzip 模块需要openssl-devel支持 HTTPSSSL 模块需要git用于克隆第三方模块源码wget用于下载源码包二、源码编译安装含第三方模块第一步安装编译依赖上面的命令已经完成这里直接进入下载如果你已经执行了“环境准备”这步可跳过。但为保持笔记完整性此处再写一遍yuminstall-ygccmakepcre-devel zlib-devel openssl-develgitwget第二步下载 Nginx 源码和第三方模块# 进入源码存放目录cd/usr/local/src# 下载 Nginx 源码以 1.30.4 为例可换成其他版本wgethttp://nginx.org/download/nginx-1.30.4.tar.gz# 解压tar-xzfnginx-1.30.4.tar.gz# 克隆 echo 模块GitHub 仓库gitclone https://github.com/openresty/echo-nginx-module.git解释下载的源码包解压后得到nginx-1.30.4目录echo 模块克隆到/usr/local/src/echo-nginx-module第三步配置编译选项添加第三方模块cd/usr/local/src/nginx-1.30.4 ./configure\--prefix/usr/local/nginx\--usernginx\--groupnginx\--with-http_ssl_module\--with-http_v2_module\--with-http_stub_status_module\--with-http_gzip_static_module\--add-module/usr/local/src/echo-nginx-module解释--prefix指定安装目录--user/--group运行用户和组生产环境建议新建 nginx 用户此处简化--with-*开启 Nginx 官方自带的功能模块--add-module添加第三方 echo 模块如果配置过程中提示缺少依赖请根据错误信息安装对应的-devel包然后重新执行./configure。第四步编译安装makemakeinstall解释make编译源码耗时较长make install将编译好的文件安装到--prefix指定的目录⚠️重编译注意事项如果你想重新配置比如添加新模块务必先执行make clean清理旧编译文件再重新执行./configure和make make install。第五步验证模块是否编译成功/usr/local/nginx/sbin/nginx-V21|grepecho预期输出如果成功会看到类似--add-module/usr/local/src/echo-nginx-module的字样。如果没有任何输出说明模块没有编译进去请检查./configure时的路径是否正确。第六步创建 systemd 服务文件方便管理这一步让你可以用systemctl start/stop/restart nginx来管理 Nginx而不是每次都要敲完整路径。cat/etc/systemd/system/nginx.serviceEOF [Unit] DescriptionNginx HTTP Server Afternetwork.target [Service] Typeforking PIDFile/usr/local/nginx/logs/nginx.pid ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/usr/local/nginx/sbin/nginx -s stop PrivateTmptrue [Install] WantedBymulti-user.target EOF解释Typeforking因为 Nginx 以 master/worker 方式启动属于 fork 模式PIDFile指定 pid 文件路径ExecStart启动命令ExecReload重载配置不停服ExecStop停止服务配置生效systemctl daemon-reload第七步启动并访问测试启动前检查确保 80 端口未被占用netstat-tlnp|grep:80如果发现占用可先停止旧进程例如pkill -9 nginx。启动 Nginx# 如果之前用源码启动过先停掉旧的/usr/local/nginx/sbin/nginx-sstop# 或 pkill -9 nginx# 现在用 systemctl 启动systemctl start nginx systemctlenablenginx# 设置开机自启# 查看状态systemctl status nginx验证 Echo 模块先修改配置文件添加测试 locationcat/usr/local/nginx/conf/nginx.confEOF worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name localhost; location /test { echo Hello, echo module!; } location / { root html; index index.html; } } } EOF重载配置systemctl reload nginx测试访问curlhttp://localhost/test预期输出Hello, echo module!如果看到这行字恭喜你整个源码编译安装 第三方模块集成已成功完成附日常运维命令操作命令检查配置语法/usr/local/nginx/sbin/nginx -t启动systemctl start nginx停止systemctl stop nginx重载配置systemctl reload nginx查看状态systemctl status nginx查看编译参数/usr/local/nginx/sbin/nginx -V查看进程ps -ef | grep nginx查看端口监听netstat -tlnp | grep :80常见问题速查问题现象可能原因解决方法bind() to 0.0.0.0:80 failed (98: Address already in use)80端口被其他进程占用用netstat -tlnp | grep :80找到 PIDkill -9 PID或pkill -9 nginxnginx: [emerg] unknown directive echo未正确编译 echo 模块重新执行./configure --add-module...然后make clean make make installinvalid PID number in nginx.pidNginx 从未启动或 pid 文件丢失先删除 pid 文件rm -f /usr/local/nginx/logs/nginx.pid再启动systemctl start nginx修改配置后不生效未重载配置执行systemctl reload nginx或/usr/local/nginx/sbin/nginx -s reload笔记结束。这份内容覆盖了从环境准备到最终验证的全流程你可以把它保存成.txt或.md文件以后只要照着复制粘贴就能完成部署。

相关新闻

【每日一题】LeetCode 347. 前 K 个高频元素 TypeScript

【每日一题】LeetCode 347. 前 K 个高频元素 TypeScript

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入:nums [1,1,1,2,2,3], k 2输出:[1,2]示例 2:输入:nums [1], k 1输出:[…

2026/10/12 3:43:00 阅读更多 →
16-终端后端-6种运行环境随心选

16-终端后端-6种运行环境随心选

16 终端后端——6种运行环境随心选 小林需要运行一个Python脚本,但不想在本地环境安装依赖,担心污染全局环境。他听说过Docker,但还没配置过。如果告诉他"Hermes可以自动在新创建的Docker容器中运行命令,用完即焚",他会是什么反应?这就是Hermes终端后端能力的…

2026/10/7 4:07:46 阅读更多 →
Turbo Intruder:告别无效并发测试,精准挖掘竞争条件漏洞

Turbo Intruder:告别无效并发测试,精准挖掘竞争条件漏洞

1. 告别无效并发测试:为什么你的并发漏洞挖掘总在“刮痧”?在安全测试的日常里,并发测试是个让人又爱又恨的活儿。爱的是,它往往能揪出那些逻辑复杂、隐蔽性强的业务漏洞,比如并发支付、并发领券、并发修改库存&#x…

2026/10/12 4:28:31 阅读更多 →

最新新闻

毕业论文答辩PPT模板实操指南:结构拆解与替换避坑

毕业论文答辩PPT模板实操指南:结构拆解与替换避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 5:14:03 阅读更多 →
变频器干扰工控机重启?EMC治理接地布线滤波隔离全解析

变频器干扰工控机重启?EMC治理接地布线滤波隔离全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 5:14:03 阅读更多 →
Oracle性能调优实战:SGA内存参数与SQL语句优化指南

Oracle性能调优实战:SGA内存参数与SQL语句优化指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 5:14:03 阅读更多 →
汇编语言期末试题调试实战:从PDF到可执行的完整链路

汇编语言期末试题调试实战:从PDF到可执行的完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 5:14:03 阅读更多 →
Sentinel核心架构源码解析:限流算法与Slot责任链实战

Sentinel核心架构源码解析:限流算法与Slot责任链实战

线上服务最怕什么?不是代码写得烂,而是流量突然失控,数据库连接被打满、缓存超时、线程池拒绝,最后全链路像多米诺骨牌一样倒下。限流算法我接触过不少,计数器、滑动窗口、令牌桶、漏桶各有各的适用场景,而…

2026/10/12 5:14:03 阅读更多 →
《人工智能:一种现代的方法》:人工智能->计算机视觉->机器人视觉->具身智能领域——推荐一本书系列专栏

《人工智能:一种现代的方法》:人工智能->计算机视觉->机器人视觉->具身智能领域——推荐一本书系列专栏

《人工智能:一种现代的方法》:人工智能->计算机视觉->机器人视觉->具身智能领域——推荐一本书系列专栏 面向未来的人工智能机器人智慧大脑的母语是图像么?让我们一探究竟吧:《人工智能:一种现代的方法》。结合具体的应用场景做项目开发过程中发现当前的软件算法及大模…

2026/10/12 5:13:03 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →