一、Nginx 简介
1. 什么是 Nginx?
Nginx(Engine X)是一款高性能的 Web 服务器 和 反向代理服务器 ,由俄罗斯工程师 Igor Sysoev 开发,采用 C 语言编写。
2. Nginx 的三大核心作用
-
✅ 反向代理:Nginx 接收客户端请求,再转发给后端服务器
-
✅ 负载均衡:将请求分发到多台 Tomcat / 应用服务器
-
✅ 动静分离:静态资源由 Nginx 直接处理,减轻后端压力
二、Nginx 安装与启动
1. 安装步骤(CentOS)
# 1. 安装依赖环境
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 2. 上传并解压
cd /usr/upload
tar -zxvf nginx-1.10.0.tar.gz
# 3. 配置安装路径
cd nginx-1.10.0
./configure --prefix=/usr/local/nginx
# 4. 编译并安装
make && make install
2. 目录结构说明
| 目录 | 说明 |
|---|---|
| conf | 配置文件(nginx.conf) |
| html | 静态资源 |
| logs | 日志文件 |
| sbin | 启动脚本 |
3. 常用命令
cd /usr/local/nginx/sbin
# 启动
./nginx
# 停止
./nginx -s stop
# 重新加载配置
./nginx -s reload
三、反向代理配置
反向代理是指 客户端访问 Nginx,Nginx 再转发请求给后端服务。
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
📌 效果:
访问 http://localhost→ 实际访问 http://127.0.0.1:8080
四、负载均衡配置
1. 基本负载均衡示例
upstream myTomcats {
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://myTomcats;
}
}
2. Nginx 的 6 种负载均衡策略
| 策略 | 说明 |
|---|---|
| 轮询(默认) | 按顺序轮流分配 |
| weight | 按权重比例分配 |
| ip_hash | 按客户端 IP 分配 |
| url_hash | 按请求 URL 分配 |
| least_conn | 分配给连接数最少的服务器 |
| fair | 按响应时间动态分配 |
3. Session 丢失问题如何解决?
✅ 推荐方案:Redis + Session
-
Redis 与 Session 都是 K-V 结构
-
支持过期时间
-
高可用、性能优
❌ 不推荐方案:
-
ip_hash(服务器宕机仍可能丢失) -
Session 复制(集群规模大时性能差)
五、动静分离配置
动静分离:
👉 静态资源由 Nginx 直接返回
👉 动态请求转发给 Tomcat
server {
listen 80;
server_name localhost;
location / {
root /usr/upload/pic;
}
}
📌 适用场景:
-
图片服务器
-
前端静态站点
-
CDN 源站
六、总结
✅ Nginx 是高性能服务器
✅ 常用于 反向代理 + 负载均衡 + 动静分离
✅ 生产环境强烈建议使用 Redis 解决 Session 共享问题
如果你觉得这篇文章对你有帮助,欢迎 点赞 + 收藏 + 关注 👍
后续我会继续更新 Nginx 高级配置与高可用方案。