Nginx的源码编译

一:Nginx 介绍

Nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服务 器 解决C10K问题(10K Connections)

Nginx功能:静态的web资源服务器html,图片,js,css,txt等,http/https协议的反向代理,结合FastCGI/uWSGI/SCGI等协议反向代理,动态资源请求 tcp/udp协议的请求转发(反向代理) ,imap4/pop3协议的反向代理。

二:Nginx 进程间通信

工作进程是由主进程生成的,主进程使用fork()函数,在Nginx服务器启动过程中主进程根据配置文件决 定启动工作进程的数量,然后建立一张全局的工作表用于存放当前未退出的所有的工作进程,主进程生 成工作进程后会将新生成的工作进程加入到工作进程表中,并建立一个单向的管道并将其传递给工作进 程,该管道与普通的管道不同,它是由主进程指向工作进程的单向通道,包含了主进程向工作进程发出 的指令、工作进程ID、工作进程在工作进程表中的索引和必要的文件描述符等信息。

主进程与外界通过信号机制进行通信,当接收到需要处理的信号时,它通过管道向相关的工作进程发送 正确的指令,每个工作进程都有能力捕获管道中的可读事件,当管道中有可读事件的时候,工作进程就 会从管道中读取并解析指令,然后采取相应的执行动作,这样就完成了主进程与工作进程的交互。

三:Nginx 编译安装

获取Nginx的安装包

root@localhost \~ wget https://nginx.org/download/nginx-1.26.2.tar.gz

解压压缩包

root@localhost \~# tar zxf nginx-1.26.2.tar.gz

安装C语言编辑器

root@localhost nginx-1.26.2# yum install gcc

切换目录底下增加模块,指定安装功能

root@localhost \~# cd nginx-1.26.2/

root@localhost nginx-1.26.2# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-stream --with-stream_ssl_module

缺少PCRE安装包寻找安装包

root@localhost nginx-1.26.2# yum search PCRE

root@localhost nginx-1.26.2# yum install pcre-devel.x86_64

root@localhost nginx-1.26.2# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-stream --with-stream_ssl_module

再次检测发现还缺失OpenSSL包

root@localhost nginx-1.26.2# yum search OpenSSL

root@localhost nginx-1.26.2# yum install openssl-devel.x86_64

root@localhost nginx-1.26.2# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-stream --with-stream_ssl_module

再再次检测发现还缺失zlib包

root@localhost nginx-1.26.2# yum install zlib-devel.x86_64

完成Nginx的源码编译

同时生成文件Makefile和objs目录

相关推荐
丰锋ff几秒前
初识Linux操作系统
linux·运维·服务器
Awna16 分钟前
MySQL 存储空间与索引运维实战:从空间排查到在线扩容
android·运维·mysql
hz5678916 分钟前
视频会议终端的核心功能与采购指南
运维·音视频·信息与通信·智能硬件
xiaoxiangsiyan19 分钟前
现代大型虚拟化智慧园区整体架构EVPN‑VXLAN落地全解
运维·网络·学习·架构
嵌入式小能手30 分钟前
飞凌嵌入式ElfBoard-Shell脚本编写基础-特殊变量
linux·运维·服务器
呉師傅38 分钟前
关于惠普LaserJet1018打印机在Windows11上打印颜色偏淡的问题解决方法
运维·服务器·windows·计算机外设·电脑
九硕智慧建筑一体化厂家44 分钟前
楼宇智能优选!KNX总线系统打造稳定高效智能控制体系
运维·人工智能·笔记·智慧城市
正在走向自律1 小时前
数采与虚拟仿真技术在电力智能运维赛道的实践探索
运维·数据采集·虚拟仿真·技能竞赛·人机协同·惯性动捕·电力智能运维
qq_11360149351 小时前
CopyEscape Docker容器逃逸(CVE-2026-17106)
运维·docker·容器
修先生1 小时前
WisQuery 一套开箱即用、可 Docker 一键部署的 智能问数 + 知识库 + 智能问答 一体化平台
运维·docker·容器