
Nginx系列(四)---反向代理与负载均衡
发布日期:2021-05-07 17:42:55
浏览次数:21
分类:精选文章
本文共 1873 字,大约阅读时间需要 6 分钟。
Nginx 反向代理与负载均衡配置指南
1. 反向代理配置
1.1 简介
反向代理(Reverse Proxy)是一种通过将外部请求转发到内部内容服务器的技术,能够有效提升网络安全性。这种方式下,敏感数据如用户密码或信用卡信息位于防火墙内部,外部攻击者即使成功入侵也只能访问代理服务器,而无法直接接触真实的内容服务器。
1.2 配置步骤
1. 修改配置文件
首先需要编辑Nginx配置文件nginx.conf
,在server
块中添加反向代理规则。
http { keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html; access_log logs/host.access.log main; error_page 500 error.html; } # 反向代理配置 location ~ \.jsp$ { proxy_pass http://192.168.5.154:8080; } }}
2. 启动内容服务器
在192.168.5.154:8080
上启动Tomcat内容服务器,并在index.jsp
中添加测试代码:
remote ip: <%= request.getRemoteAddr() %>
1.3 测试验证
- 直接访问内容服务器:访问
192.168.5.154:8080
,确认远程IP显示为192.168.5.199
。 - 通过Nginx反向代理访问:访问
192.168.5.154/index.jsp
,远程IP应显示为192.168.5.154
,说明反向代理已成功。
问题解决
为了让内容服务器获取真实IP地址,需在Nginx配置中添加请求头:
location ~ \.jsp$ { proxy_set_header X-real-ip $remote_addr; proxy_pass http://192.168.5.154:8080;}
这样,内容服务器通过X-real-ip
头获取真实客户端IP。
2. 负载均衡配置
2.1 简介
负载均衡(Load Balancing)在网络中分配流量,避免单一服务器过载。通过Nginx配置多个内容服务器,实现请求分发的均衡。
2.2 配置步骤
1. 修改配置文件
编辑nginx.conf
,在server
块中添加负载均衡配置:
http { keepalive_timeout 65; upstream tomcat_server { server 192.168.5.154:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.5.155:8080 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name localhost; location / { root html; index index.html; access_log logs/host.access.log main; error_page 500 error.html; } location ~ \.jsp$ { proxy_set_header X-real-ip $remote_addr; proxy_pass http://tomcat_server; } }}
2. 测试验证
- 启动两个Tomcat服务器:
192.168.5.154:8080
和192.168.5.155:8080
。 - 访问Nginx反向代理地址
192.168.5.154/index.jsp
,随机请求将分发至任一Tomcat服务器。