Nginx源码编译

Nginx------ 一款高性能的 HTTP 服务器、反向代理服务器,也是轻量级的邮件代理服务器,是后端 / 运维日常最常用的工具之一

如何在Linux操作系统是部署Nginx

一.下载软件

bash 复制代码
[root@Nginx ~]# wget https://nginx.org/download/nginx-1.28.1.tar.gz

二.解压

bash 复制代码
[root@Nginx ~]# tar zxf nginx-1.28.1.tar.gz

三.检测环境

安装 Nginx 源码编译和运行所必需的依赖库 / 编译工具

bash 复制代码
[root@Nginx ~]# dnf install gcc openssl-devel.x86_64 pcre2-devel.x86_64 zlib-devel -y

对 Nginx 源码做编译前的定制化配置

bash 复制代码
[root@Nginx nginx-1.28.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
基础配置参数(决定 Nginx 的安装 / 运行基础属性)
参数 核心含义
--prefix=/usr/local/nginx 【最核心】指定 Nginx 的安装根目录 ,后续所有文件(配置、二进制、日志)都基于这个目录,你的 Nginx 最终会装在/usr/local/nginx
--user=nginx 指定 Nginx 运行时的普通用户,避免以 root 用户运行(安全风险高)
--group=nginx 指定 Nginx 运行用户所属的用户组 ,和--user配合使用
模块配置参数(--with-xxx表示开启对应的功能模块,Nginx 默认不开启这些扩展模块)
参数 核心作用(生产环境常用)
--with-http_ssl_module 开启HTTPS 功能模块,支持配置 SSL 证书,实现 HTTPS 访问(必备)
--with-http_v2_module 开启HTTP/2 协议模块,比 HTTP/1.1 更快,支持现代浏览器的 HTTP/2 请求
--with-http_realip_module 开启真实 IP 模块,反向代理时能获取客户端的真实 IP(而非 Nginx 的 IP),方便日志统计 / 权限控制
--with-http_stub_status_module 开启Nginx 状态监控模块,能查看 Nginx 的连接数、请求数、活跃进程等运行状态(运维必备)
--with-http_gzip_static_module 开启gzip 静态压缩模块,对 HTML/CSS/JS/ 图片等静态资源做压缩,减小传输体积,提升访问速度
--with-pcre 强制关联 PCRE 正则库,确保 Nginx 的路由匹配、重写规则正常工作(依赖第一步的 pcre2-devel)
--with-stream 开启TCP/UDP 转发模块,支持 Nginx 做 TCP 层的反向代理(比如转发数据库、Redis 请求)
--with-stream_ssl_module 为 stream 模块开启 SSL 加密,支持 TCP 层的 HTTPS 转发(比如加密 Redis/TCP 请求)
--with-stream_realip_module 为 stream 模块开启真实 IP 获取,TCP 转发时能拿到客户端真实 IP

四.编译

编译 Nginx 源码 ,读取之前./configure生成的Makefile 文件 (编译配置文件),调用系统的gcc编译器,把 Nginx 的 C 语言源码编译成二进制可执行程序和相关模块文件。

bash 复制代码
[root@Nginx nginx-1.28.1]# make

安装编译后的 Nginx 程序 , 把make编译好的二进制程序、配置文件、静态资源目录、日志目录等所有文件 ,按./configure中--prefix=/usr/local/nginx的指定,复制到对应的安装目录中,生成完整的、可直接使用的 Nginx 环境。

bash 复制代码
[root@Nginx nginx-1.28.1]# make install

五.Nginx启动

设定环境变量

bash 复制代码
[root@Nginx ~]# cd /usr/local/nginx/sbin/

[root@Nginx sbin]# vim  ~/.bash_profile
export PATH=$PATH:/usr/local/nginx/sbin

[root@Nginx sbin]# source   ~/.bash_profile
bash 复制代码
[root@Nginx nginx]# cd /usr/local/nginx/logs/

[root@Nginx logs]# useradd  -s /sbin/nologin -M nginx

[root@Nginx logs]# nginx

[root@Nginx logs]# ps aux | grep nginx
root       44012  0.0  0.1  14688  2356 ?        Ss   17:01   0:00 nginx: master process nginx
nginx      44013  0.0  0.2  14888  3892 ?        S    17:01   0:00 nginx: worker process
root       44015  0.0  0.1   6636  2176 pts/0    S+   17:01   0:00 grep --color=auto nginx

测试:

相关推荐
Initialize-le1 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根4 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
U-Mail邮件系统4 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
天远数科6 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
别动我齐刘海7 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
honsor7 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
星创易联8 小时前
PLC数据采集与远程运维平台:从边缘计算到集中监控
大数据·运维·边缘计算
郭老二8 小时前
【docker】docker compose使用,已nginx为例
nginx·docker·容器
寻道模式9 小时前
【运维心得】完整教程:绕过Win11限制让老机焕发新生
运维·操作系统·win11