概述
- 定义
- 一个高性能的 HTTP 和反向代理服务器
- 一个 IMAP/POP3/SMTP 代理服务器
- 目标:高效处理高并发连接
- 安装流程:Installing nginx
功能
功能 | 说明 |
---|---|
⭐ 反向代理 | 作为反向代理服务器,将客户端请求转发到一个或多个后端服务器 |
负载均衡 | 通过多种负载均衡算法(如轮询、最少连接等)分发请求 |
HTTP 缓存 | 缓存后端服务器的响应,提高响应速度并减轻后端服务器的压力 |
静态内容服务 | 高效地提供静态文件(如 HTML、CSS、JavaScript、图片等)的服务 |
SSL/TLS 加密 | 支持 SSL/TLS,加密客户端和服务器之间的通信,提高安全性 |
邮件代理服务 | 作为邮件代理(IMAP、POP3、SMTP)服务器 |
URL 重写和重定向 | 提供灵活的 URL 重写和重定向功能,用于优化 URL 结构和管理请求路由 |
FastCGI、uWSGI、gRPC 支持 | 支持与 FastCGI、uWSGI 和 gRPC 服务通信,常用于与 PHP、Python 和其他动态内容生成的应用服务器集成 |
流控 & 限流 | |
访问控制和认证 |
常用命令
命令 | 功能 | 说明 |
---|---|---|
nginx -s quit | 正常停止 | 优雅退出 |
nginx -s stop | 立即停止 | 强制退出 |
nginx -s reload | 重新加载配置文件 | 热重载配置 |
nginx -s reopen | 重新打开日志文件 | 日志切割 |
nginx -t | 检查配置文件 | 验证配置有效性 |
nginx -p /path/to/virtual_host_file | 启动特定虚拟主机 | 指定虚拟主机配置 |
结构
- 组成:一个主进程 + 多个工作进程
一、主进程(Master Process)
- 功能
- 读取和评估配置文件
- 管理和维护工作进程(Worker Processes)
- 接受并响应操作系统的信号(如重启、重新加载配置等)
二、工作进程(Worker Processes)
- 功能:实际处理客户端请求
- 数量:在配置文件中定义,可以针对给定的配置进行固定,也可以根据可用的 CPU 内核数量自动调整
- 进程独立:每个工作进程是独立的,相互之间没有共享状态,这样可以最大限度地提高稳定性和并发处理能力
三、事件驱动模型
- 定义:异步、非阻塞的事件驱动架构,依赖于操作系统提供的高效事件通知机制(如 epoll、kqueue 等)
- 功能:允许 Nginx 在处理高并发连接时保持高效
特点
高可靠性
:独立的工作进程设计,某个工作进程出问题不会影响整个服务器的运行资源消耗低
:内存和 CPU 使用率低(10000 个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗 2.5MB 的内存)处理响应请求快
:基于事件驱动的架构,Nginx 可以比其它的 Web 服务器更快的响应请求支持高并发连接
:基于事件驱动的架构,能够并发处理百万级别的 TCP 连接高扩展性
:高度模块化的设计和自由的许可证使得用于扩展 Nginx 功能的第三方模块十分庞大热部署
:master 管理进程与 worker 工作进程的分离设计,保证 Nginx 可以在不间断服务的前提下,升级 Nginx 的可执行文件自由的 BSD 许可协议
:允许用户免费使用 Nginx,也允许用户修改 Nginx 源码,还允许用户用于商业用途跨平台
:Linux ↔ Windows