Nginx 学习总结(1) —— 概述

Nginx是一款高性能的HTTP服务器及反向代理软件,采用模块化设计,支持负载均衡与HTTP缓存。本文介绍其架构原理,包括核心组件、事件驱动模型、进程结构及常用命令。

Nginx 是什么

Nginx 是一款轻量的(相比 ApacheLighttpd 而言)、高性能的 HTTP 服务器,同时也可以用作反向代理、负载平衡器和 HTTP 缓存。Nginx 采用了模块化、事件驱动的架构设计,使用了异步非阻塞的事件处理机制处理请求,使得在高负载下也能提供更可靠的性能。
图片描述

Nginx 模块化体系

Nginx 的内部结构是由核心部分和一系列的功能模块所组成。Nginx Core 实现底层的通讯协议,为其他模块构建了基本的运行时环境,并且构建了其他各模块的协作基础。除此之外,应用相关的功能都是在一系列的功能模块中完成。

Nginx 将各功能模块组织成一条链,当有请求到达的时候,请求依次经过这条链上的部分或者全部模块进行处理。每个模块实现特定的功能,例如,实现对请求解压缩的模块,实现与上游服务器(upstream模块)进行通讯的模块,实现与 FastCGI 服务进行通讯的模块等等。

有两个模块比较特殊,他们居于 Nginx Core 和各功能模块的中间,这两个模块就是 HTTP 模块和 MAIL 模块。它们用于处理与 HTTP 协议和 email 相关协议(SMTP/POP3/IMAP)有关的事件,并且确保这些事件能被以正确的顺序来调用其他的一些功能模块。功能模块分类:

  1. event module:搭建了独立于操作系统的事件处理机制的框架,及提供了各具体事件的处理
  2. phase handler:主要负责处理客户端请求并产生待响应内容
  3. output filter:主要是负责对输出的内容进行处理,例如,对输出的图片的 URL 进行替换之类的工作
  4. upstream:实现负载均衡的功能
  5. load-balancer:实现负载均衡的功能,通过特定的算法,在众多的后端服务器中,选择一个服务器出来作为某个请求的转发服务器

图片描述

Nginx 进程模型

Nginx 程序在启动后,会以守护进程的方式在系统后台中运行,后台进程包含一个 master 进程和多个 worker 进程。

master 进程负责管理 Nginx 本身和其他 worker 进程,包含:接收来自外界的信号、向各 worker 进程发送信号、监控 worker 进程的运行状态、当 worker 进程退出后(异常情况下),会自动重新启动新的 worker 进程等。

worker 进程主要处理基本的网络事件,多个 worker 进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,完全由 worker 进程来处理,而且只在一个 worker 进程中处理。worker 进程的个数是可以设置的,一般我们会设置与机器 cpu 核数一致,这里面的原因与 Nginx 的进程模型以及事件处理模型是分不开的。

Nginx 的进程模型,可以由下图来表示:
图片描述

Nginx 常用命令

nginx -h —— Nginx 帮助命令
nginx -s stop —— 快速停止 Nginx
nginx -s quit —— 平滑停止 Nginx
nginx -s reload —— 重载配置文件(用新的配置文件启动新 worker 进程,并平滑的关闭旧的 worker 进程)
nginx -t —— 检测配置文件是否正确

### Nginx 学习教程完整指南 #### 了解Nginx的基础概念 Nginx是一个高性能的HTTP和反向代理Web服务器,同时也提供IMAP/POP3/SMTP服务。它具有占用内存少、并发能力强的特点,在同类型的网页服务器中表现出色[^4]。 #### 安装与基本配置 对于初次接触者来说,理解如何安装以及初步设置至关重要。当针对网站80端口的所有请求,默认情况下会映射至`/usr/local/nginx/html`路径下,这是Nginx默认放置HTML页面的位置[^1]。 #### 配置灵活性展示 为了提高效率并优化性能,掌握不同文件类型的缓存策略十分必要。通过灵活配置,Nginx不仅能够高效处理静态资源,还能借助FastCGI_Cache机制加速动态内容分发;而利用第三方模块如ngx_cache_purge,则可实现对特定URL缓存条目的精准控制[^2]。 #### 动态应用集成实例 考虑到实际应用场景中的需求多样性,学会将Java应用程序部署于Nginx之后也是重要的一环。创建专门用于存储静态资源的新建static文件夹,并确保这些资源可以通过运行相应的JAR包来正常访问[^3]。 #### 性能优势概述 值得一提的是,Nginx以其出色的稳定性和可靠性著称——几乎可以达到全年无休地持续运作而不需重启,这得益于其高效的事件驱动架构设计及精简的核心代码库。官方测试结果显示,单台设备上Nginx最多可支撑超过五万个并发连接请求。 ```bash # 示例:查看当前版本号以确认安装成功与否 nginx -v ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值