一、Nginx 简介
1. 什么是 Nginx?
Nginx(发音 engine x)是一款由俄罗斯开发的 高性能 Web 服务器、反向代理服务器,采用 C 语言编写,具有占用内存少、并发能力强的特点,在高并发场景下表现优异。
2. Nginx 的主要作用
-
反向代理:代替后端服务器(如 Tomcat)接收请求
-
负载均衡:将请求分发到多个后端服务器
-
动静分离:将静态资源交由 Nginx 处理,动态请求转发到后端服务器
二、Nginx 安装与启动
1. 安装步骤
(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 /usr/upload/nginx-1.10.0
./configure --prefix=/usr/local/nginx
(4)编译并安装
make && make install
2. 目录结构说明
|
目录 |
说明 |
|---|---|
|
|
配置文件(nginx.conf) |
|
|
静态页面存放目录 |
|
|
日志文件 |
|
|
启动脚本 |
3. 常用命令
进入 Nginx 可执行文件目录:
cd /usr/local/nginx/sbin
|
功能 |
命令 |
|---|---|
|
启动 |
|
|
停止 |
|
|
平滑重启(重载配置) |
|
三、反向代理配置
示例:将请求转发到 Tomcat
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
📌 原理:客户端访问 Nginx(80端口),Nginx 将请求转发到后端 Tomcat(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 丢失的方案
-
ip_hash
同一 IP 的请求固定分配到同一台 Tomcat(但某台 Tomcat 宕机仍会切换)
-
Session 复制
多台 Tomcat 间同步 Session(性能消耗大)
-
Redis 共享 Session ✅(推荐)
Session 数据存入 Redis,Tomcat 从 Redis 读取
五、动静分离
示例:静态资源由 Nginx 直接处理
server {
listen 80;
server_name localhost;
location / {
root /usr/upload/pic;
}
}
📌 动静分离优点:
-
减少后端服务器压力
-
提高静态资源访问速度
-
更好地利用 Nginx 的高并发能力
六、总结
Nginx 作为一个轻量高效的 Web 服务器,在反向代理、负载均衡、动静分离等方面都有非常成熟的应用场景。配合 Tomcat 使用,可以有效提升系统并发能力和稳定性。
如果你需要,我可以帮你 加上 CSDN 风格的封面图和关键词标签,让它更符合平台规范,你要我帮你加吗?
158

被折叠的 条评论
为什么被折叠?



