Nginx 源码编译安装

创建虚拟机,内存 4G 处理器 2 核,NAT 网络。

准备 Nginx 源码包,1.24 版本,用于实验。

一、下载 Nginx 源码包

Nginx 官网:www.nginx.org

download 下载相关的版本,如下图:

wget 下载 Nginx 源码包。

wget https://nginx.org/download/nginx-1.24.0.tar.gz

解压。

tar xzf nginx-1.24.0.tar.gz

解压后生成一个目录 nginx-1.24.0。

目录里 configure 是环境检测文件。


二、关闭 debug 功能

关闭 debug 功能,使安装软件占用内存变小。

vim /root/nginx-1.24.0/auto/cc/gcc

三、检测环境

检测环境缺哪些东西。

./configure --help
./configure \           
--prefix=/usr/local/nginx \         # 安装目录
--user=nginx \                      # 指定nginx运行用户
--group=nginx \                     # 指定nginx运行组
--with-http_ssl_module \            # 支持https://
--with-http_v2_module \             # 支持http版本2
--with-http_realip_module \         # 支持ip透传
--with-http_stub_status_module \    # 支持状态页面 
--with-http_gzip_static_module \    # 支持压缩
--with-pcre \                       # 支持正则
--with-stream \                     # 支持tcp反向代理
--with-stream_ssl_module            # 支持tcp的ssl加密

以上选择检测目前的环境是否满足这些选择,检测过程中会出现以下内容。

checking for C compiler ... not found   # 缺少c语言编译器
dnf install -y gcc      # 安装gcc编译器
​
./configure: error: the HTTP rewrite module requires the PCRE library.  # 缺少PCRE
dnf search pcre
dnf install -y pcre-devel.x86_64  # 安装pcre开发包
​
./configure: error: SSL modules require the OpenSSL library.  # 缺少OpenSSL
dnf search openssl
dnf install -y openssl-devel.x86_64  # 安装openssl开发包
​
./configure: error: the HTTP gzip module requires the zlib library.   # 缺少zlib
dnf search zlib
dnf install -y zlib-devel.x86_64  # 安装zlib开发包

检测完成会出现以下内容。 

环境检测通过后形成一个 Makefile 文件,Makefile 生成以后,objs 文件里就会产生编译后生成的文件,这些文件才是软件运行时用所需要的。

四、编译

make 编译, -j2 不建议做,因为会导致内存溢出,make 就是将源文件与系统 c 语言服务器进行对接,编译的快慢取决于系统 CPU 的运算速率和内存大小,如果没有 make 命令,使用 dnf install -y make 安装 make。

make 命令用于根据 Makefile 文件中的规则和依赖关系,编译和构建项目。Makefile 中定义了如何编译源代码、生成目标文件、链接库等一系列构建步骤。当执行 make 命令时,它会检查文件的修改时间和依赖关系,只重新编译那些被修改或其依赖项有更新的部分,从而提高编译效率。

make

objs/ 文件里生成 nginx(nginx 启动程序)和 src(包含 nginx 用到的所有模块/插件)。

接下啦需要把 objs 文件的内容拷贝到 /usr/local/nginx/ 里,执行 make install 命令,自动拷贝文件。

make install 通常是在 make 成功完成构建之后执行的。它的作用是将编译生成的可执行文件、库文件、配置文件等安装到指定的目录中,这些目录通常是系统的标准位置,以便软件能够在系统中正常运行和使用。

make install

五、创建用户

创建启动 nginx 服务所需的用户。

useradd -s /sbin/nologin -M nginx
id nginx

编辑环境变量文件,把 nginx 软件的命令执行路径添加到环境变量中,使 nginx 像系统命令那样进行。

vim ~/.bash_profile 
export PATH=$PATH:/usr/local/nginx/sbin   # 这行添加进~/.bash_profile里
source ~/.bash_profile    # 加载环境变量

运行 nginx,并查看 nginx 的进程和端口(检查 nginx 服务是否启动)。

nginx

查看 nginx 版本信息。

curl -I ip

六、拓展:修改版本信息

拓展:版本信息可改(隐藏版本信息)。

进入 /root/nginx-1.24.0/src/core 目录修改 nginx.h 文件内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控,通过监控后端服务对外部请求的响应情况,判断服务器是否可用。 DPVS的被动监测,并不能获取后端服务器的详细情况,仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…

【计算机网络协议01】应用层协议HTTP

应用层协议HTTP 引言 应用层协议是程序员自己制定的,但是良好的协议是保证网络通信的基础,前代的计算工程师已经帮助我们制定了一些很好用的应用层协议,http(hybertext transfer protocol)(超文本传输协议)就是其中之一。 http协议是客户端…

uniapp 系统学习,从入门到实战(四)—— 页面与路由管理

​ 全篇大概 2700 字(含代码),建议阅读时间 20min 在跨平台开发中,高效的路由管理直接影响用户体验和开发效率。本文将深入探讨uniapp的页面创建、路由跳转、参数传递和生命周期管理,助您构建流畅的多端应用。 📚 目录 页面创建…

BOOST电路设计

目录 1电路模型 2器件选型 2.1设计需求 2.2参数计算 2.2.1电感L计算 2.2.2电容计算 2.2.3电阻计算 3仿真测试 4参数测试 4.1负载调整率 4.2电容测试 4.3电感测试 5实际应用 1电路模型 Boost升压电路,可以工作在电流断续工作模式(DCM)和电流连续工作模式(CCM)。CCM工…

springboot实现文件上传到华为云的obs

一、前言 有时在项目中需要使用一些存储系统来存储文件&#xff0c;那么当项目要接入obs作为存储系统时&#xff0c;就会利用obs来进行文件的上传下载&#xff0c;具体实现如下。 二、如何通过obs实现文件的上传下载&#xff1f; 1.添加相关的obs的maven依赖。 <dependency…

miqiu的分布式锁(二):实战——用JMeter验证JVM锁能否解决MySQL超卖问题

miqiu的分布式锁二&#xff1a;实战——用JMeter验证JVM锁能否解决MySQL超卖问题 实验背景 在秒杀场景中&#xff0c;超卖问题是典型的并发编程挑战。本文通过JMeter压测工具&#xff0c;验证基于JVM的两种锁机制&#xff08;synchronized/ReentrantLock&#xff09;对MySQL库…

《论企业集成平台的理解与应用》审题技巧 - 系统架构设计师

企业集成平台的理解与应用——论文写作框架 一、考点概述 本论题“企业集成平台的理解与应用”主要考察的是计算机软件测试工程师对于企业集成平台&#xff08;EIP&#xff09;的深入理解以及在实际项目中的应用能力。论题涵盖了以下几个核心内容&#xff1a; 首先&#xff…

初阶数据结构(C语言实现)——2算法的时间复杂度和空间复杂度

目录 本节目标1. 算法效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度 2.时间复杂度2.1 时间复杂度的概念2.1.1 入门习题2.1.2 进阶习题 2.2 常见时间复杂度 3. 空间复杂度3.1 常见空间复杂度 本节目标 算法效率时间复杂度空间复杂度常见时间复杂度以及复杂度oj练习 1. 算法…

排序算法(3):

这是我们的最后一篇排序算法了&#xff0c;也是我们的初阶数据结构的最后一篇了。 我们来看&#xff0c;我们之前已经讲完了插入排序&#xff0c;选择排序&#xff0c;交换排序&#xff0c;我们还剩下最后一个归并排序&#xff0c;我们今天就讲解归并排序&#xff0c;另外我们还…

AI智能体与大语言模型:重塑SaaS系统的未来航向

在数字化转型的浪潮中&#xff0c;软件即服务&#xff08;SaaS&#xff09;系统一直是企业提升效率、优化业务流程的重要工具。随着AI智能体和大语言模型&#xff08;LLMs&#xff09;的迅速发展&#xff0c;SaaS系统正迎来前所未有的变革契机。本文将从AI智能体和大语言模型对…

AOP进阶-03.切入点表达式-execution

一.切入点表达式-execution 访问修饰符(public/private等)&#xff0c;包名.类名.&#xff0c;throws 异常都可以省略&#xff0c;但是建议包名.类名.不要省略&#xff0c;否则的话匹配范围太大影响程序执行效率。 *主要用来匹配单个参数&#xff0c;通配任意返回值、包名、类…

神经网络发展简史:从感知机到通用智能的进化之路

引言 神经网络作为人工智能的核心技术&#xff0c;其发展历程堪称一场人类对生物大脑的致敬与超越。本文将用"模型进化"的视角&#xff0c;梳理神经网络发展的五大关键阶段&#xff0c;结合具象化比喻和经典案例&#xff0c;为读者呈现一幅清晰的AI算法发展图谱。 一…

NLP09-加强1-对比SVM

支持向量机&#xff08;SVM&#xff09; &#xff08;一&#xff09;导入 SVM 相关库 &#xff08;二&#xff09; 修改模型初始化 &#xff08;三&#xff09; 比较 朴素贝叶斯分类器 SVM分类器 支持向量机&#xff08;SVM&#xff09; 代码修改基于NLP09-朴素贝叶斯问句…

Spring 源码硬核解析系列专题(八):Spring Security 的认证与授权源码解析

在前几期中,我们从 Spring 核心到 Spring Boot,再到 Spring Cloud,逐步探索了 Spring 生态的底层原理。作为企业级应用的关键组件,Spring Security 提供了全面的安全解决方案,包括认证(Authentication)和授权(Authorization)。本篇将深入 Spring Security 的源码,剖析…

DeepSeek 开源了 DeepEP

DeepSeek又开源了一个超强技术&#xff1a;DeepEP通信库。实现了MOE之间的通信&#xff0c;性能更强了&#xff01; DeepEP作为全球首个专为MoE&#xff08;专家混合&#xff09;模型训练和推理量身定制的EP&#xff08;专家并行&#xff09;通信库&#xff0c;其诞生标志着通…

【C语言】指针笔试题

前言&#xff1a;上期我们介绍了sizeof与strlen的辨析以及sizeof&#xff0c;strlen相关的一些笔试题&#xff0c;这期我们主要来讲指针运算相关的一些笔试题&#xff0c;以此来巩固我们之前所学的指针运算&#xff01; 文章目录 一&#xff0c;指针笔试题1&#xff0c;题目一…

电脑键盘知识

1、键盘四大功能区 1. 功能区 2. 主要信息输入区 3. 编辑区 4. 数字键盘区 笔记本电脑键盘的功能区&#xff0c;使用前需先按Fn键 1.1、功能区 ESC&#xff1a;退出 F1&#xff1a;显示帮助信息 F2&#xff1a;重命名 F4&#xff1a;重复上一步操作 F5&#xff1a;刷新网页 …

在 macOS 系统上安装 kubectl

在 macOS 系统上安装 kubectl 官网&#xff1a;https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/ 用 Homebrew 在 macOS 系统上安装 如果你是 macOS 系统&#xff0c;且用的是 Homebrew 包管理工具&#xff0c; 则可以用 Homebrew 安装 kubectl。 运行…

004 Kafka异常处理

6.异常处理 文章目录 6.异常处理1.异常分类与处理原则2.生产者异常处理1. 同步发送捕获异常2. 异步发送回调处理 3.消费者异常处理1.全局异常处理器2.方法级处理3.重试yml配置 4.死信队列&#xff08;DLQ&#xff09;配置1. 启用死信队列2. 手动发送到DLQ 5.事务场景异常处理1.…

Spring MVC框架六:Ajax技术

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 简介 jQuery.ajax Ajax原理 结语 创作不易&#xff0c;希望能对大家给予帮助 想要获取更多资源? 点击链接获取