Nginx 安装配置
2601_962203512026-08-30 9:17
1.1 Nginx 概述###### 1.1.1 Nginx 介绍Nginx(engine X)由Igor Sysoev于2002年开发,分为社区版和商业版(nginx plus)。2019年3月11日,F5 Networks以6.7亿美元的价格收购了Nginx。Nginx是一款免费的、开源的、高性能HTTP和反向代理服务器,同时支持邮件代理服务器以及TCP/UDP代理服务器。它被设计用于解决C10K问题(10,000个并发连接),并且广泛应用于高流量网站中。Nginx 官网:http://nginx.orgNginx的其他二次发行版包括:* Tengine :由淘宝网发起的Web服务器项目,基于Nginx进行优化,添加了许多高级功能和特性,特别适合高访问量的网站。Tengine已经在大型网站如淘宝网、天猫商城中得到了充分检验。官网:http://tengine.taobao.org/ * OpenResty :由章亦春团队开发的基于Nginx与Lua语言的高性能Web平台,官网:http://openresty.org/cn/ ###### 1.1.2 Nginx 功能介绍* 静态资源服务器 :如html、图片、js、css、txt等。* 反向代理 :支持HTTP/HTTPS协议。* 动态资源请求反向代理 :结合FastCGI/uWSGI/SCGI等协议。* TCP/UDP协议转发 :支持tcp/udp协议的请求转发。* 邮件代理 :支持IMAP4/POP3协议的反向代理。###### 1.1.3 Nginx 基础特性* 模块化设计 :具备良好的扩展性。* 高可靠性 :支持热部署,不停机更新配置文件、升级版本和更换日志文件。* 低内存消耗 :在10,000个keep-alive连接下,仅需2.5MB内存。* 事件驱动 :支持AIO、mmap、sendfile等机制。##### 1.2 Nginx 架构和进程###### 1.2.1 Nginx 进程结构Nginx采用多进程架构,由一个Master主进程和多个Worker工作进程组成。* 主进程(Master Process) :负责接收外部操作信号,转发给Worker进程,并监控Worker进程的运行状态。它还负责读取Nginx配置文件,建立、绑定和关闭socket连接,管理和生成工作进程,并实现不中断服务的平滑升级和重启。 * 工作进程(Worker Process) :负责处理所有网络请求。每个Worker进程都是独立且平等的,通常设置为CPU核心数,以充分利用资源并减少上下文切换的损耗。Worker进程处理客户请求,将其送入各个功能模块,执行I/O调用,与后端服务器通信,并响应客户请求。 ###### 1.2.2 Nginx 进程间通信Nginx的主进程与工作进程之间通过管道通信。主进程生成工作进程,并在启动时为每个进程建立单向管道,用于发送指令。Worker进程之间也可以通过共享内存或管道通信,但由于它们是隔离的,因此需要通过主进程来实现状态信息的共享。###### 1.2.3 Nginx 启动和 HTTP 连接建立Nginx启动时,Master进程加载配置文件并初始化监听的socket。然后,Master进程通过fork出多个Worker进程,Worker进程之间竞争新的连接,成功的Worker进程通过三次握手建立Socket连接并处理请求。##### 1.3 Nginx 模块介绍Nginx支持多种模块,模块化设计使其功能可以灵活扩展。* 核心模块 :提供Nginx的基本运行功能,如错误日志记录、配置文件解析、事件驱动机制和进程管理。* 标准HTTP模块 :处理HTTP协议的解析和管理。* 可选HTTP模块 :扩展HTTP功能,如多媒体传输、GeoIP请求解析、网络传输压缩和SSL支持。* 邮件服务模块 :支持POP3、IMAP和SMTP协议的邮件服务。* Stream服务模块 :用于TCP协议代理的实现。* 第三方模块 :用于扩展Nginx功能,如Json支持和Lua支持。##### 1.4 Nginx 安装###### 1.4.1 Nginx 版本和安装方式Nginx主要有三个版本:* Mainline version :主要开发版本,一般为奇数版本号,如1.19。* Stable version :最新的稳定版本,一般为偶数版本号,如1.20。* Legacy versions :旧的稳定版本,如1.18。Nginx可以通过yum或源码编译安装,推荐使用源码编译方式安装。虽然yum安装较为方便,但版本通常较旧,而源码编译可以更灵活地自定义安装路径和功能,以满足特定业务需求。* * #### Nginx 编译安装##### 1. 安装所需依赖包 dnf install gcc pcre-devel zlib-devel openssl-devel -y 首先,通过
相关推荐
TDengine (老段)1 小时前
TDengine 应用案例 — IT 运维与可观测性观无1 小时前
.net发布注意事项AugustSkys1 小时前
云原生运维实战:ETCD 分布式存储集群运维、Kubernetes 高可用集群部署与版本平滑升级2601_9667990411 小时前
酷嗨米J300:一台相机同步推三平台AI行业说11 小时前
2026年清洁耗材智能模板机品牌排名:扫地机拖布、美妆粉扑工厂自动化选型指南派大鑫wink11 小时前
Dify 工作流搭建操作手册:以信息化运维周报自动生成为例志栋智能12 小时前
超自动化运维:支持微服务架构的运维模式资深电气设计12 小时前
技术分析:空调机房水泵性能优势与系统适配性研究——水力能效、结构集成与智能运维维度Brilliantwxx12 小时前
【Linux】 进程(7)深度剖析 进程内核O(1)调度队列 + 饥饿问题
#### 验证版本及编译参数##### 1. 配置环境变量 vim ~/.bash_profile 编辑
#### 平滑升级将旧Nginx二进制文件换成新Nginx程序文件(注意先备份) 向master进程发送USR2信号 master进程修改pid文件名加上后缀.oldbin,成为nginx.pid.oldbin master进程用新Nginx文件启动新master进程成为旧master的子进程,系统中将有新旧两个Nginx主 进程共同提供Web服务,当前新的请求仍然由旧Nginx的worker进程进行处理,将新生成的master进 程的PID存放至新生成的pid文件nginx.pid 向旧的Nginx服务进程发送WINCH信号,使旧的Nginx worker进程平滑停止 向旧master进程发送QUIT信号,关闭老master,并删除Nginx.pid.oldbin文件 如果发现升级有问题,可以回滚∶向老master发送HUP,向新master发送QUIT#### 1. 解压源码包
#### 回滚#### Nginx 服务回滚与测试##### 1. 停止 Nginx 服务 