1. Nginx 概述
-
定义:高性能 HTTP 和反向代理 Web 服务器,内存占用少,支持高并发场景。
-
核心优势:高并发处理能力、低资源消耗、丰富的扩展模块、配置灵活。
2. 核心作用
2.1 正向代理 vs 反向代理
-
正向代理:
- 场景:客户端通过代理服务器访问外部资源(如 VPN),隐藏真实客户端 IP。
- 特点:代理客户端请求,服务器不知真实客户端。
-
反向代理:
-
场景:服务器端代理,客户端请求转发到后端真实服务器(如项目部署),隐藏真实服务器 IP。
-
特点:代理服务器接收请求,转发至后端集群,客户端无感知。
-
2.2 负载均衡
-
作用:将请求均匀分发到多个后端服务器,避免单点压力。
-
内置策略:
-
轮询:默认策略,请求依次分配到各服务器。
-
加权轮询:按权重(
weight)分配,权重越高处理请求越多(适用于性能差异化服务器)。 -
IP Hash:根据客户端 IP 哈希值固定分配到某服务器,保证会话一致性。
-
2.3 动静分离
-
原理:分离动态资源(如 JSP、API)和静态资源(如 HTML、CSS、图片)。
-
优势:静态资源由 Nginx 直接响应,减少后端服务器压力,提升访问速度。
3. 常用命令
Nginx 操作
cd /usr/local/nginx/sbin/ # 进入 Nginx 执行目录
./nginx # 启动 Nginx
./nginx -s stop # 强制停止
./nginx -s quit # 安全退出(处理完当前请求)
./nginx -s reload # 重新加载配置文件
ps aux|grep nginx # 查看 Nginx 进程
防火墙操作(Linux)
service firewalld start/restart/stop # 启动/重启/关闭防火墙
firewall-cmd --list-all # 查看防火墙规则
firewall-cmd --query-port=8080/tcp # 查询端口是否开放
firewall-cmd --permanent --add-port=80/tcp # 永久开放端口
firewall-cmd --reload # 重启防火墙使配置生效
4. 配置示例
4.1 连接数配置
event {
worker_connections 1024; # 单个工作进程最大连接数
}
4.2 负载均衡 配置
http {
upstream backend_servers {
server 127.0.0.1:8080 weight=1; # 服务器 1,权重 1
server 127.0.0.1:8081 weight=2; # 服务器 2,权重 2(处理请求更多)
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend_servers; # 请求转发到负载均衡组
proxy_set_header Host $host; # 传递客户端真实 Host
}
}
}
5. 总结
- 核心功能:反向代理、负载均衡、动静分离,提升应用性能和可用性。
- 适用场景:高并发 Web 服务、API 网关、静态资源服务器、微服务架构流量转发。
- 关键优势:轻量级、配置灵活、社区生态丰富,支持插件扩展(如 Lua、SSL 等)。