参考文章:
负载均衡原理图:

硬件配置:
nginx服务器:192.168.88.132:80
tomcat服务器:192.168.88.132:8080
tomcat服务器:192.168.88.133:8081
1. 编写测试页面
分别在两台tomcat服务器webapps/login/下编写测试用的静态页面
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312" />
</head>
<body>
<h1>您正在访问:192.168.88.xxx</h1>
</body>
</html>
2. 配置nginx
- nginx基本配置
server{
listen 8088; #端口号
server_name 192.168.88.132; #服务名,也就是我们浏览器访问的地址
}
- 负载均衡列表基本配置
#服务器集群
upstream mycluster{
#这里添加的是上面启动好的两台Tomcat服务器
server 192.168.88.132:8080 weight=1; #权重,根据服务器配置来定,权重越大机率越大
server 192.168.88.133:8081 weight=1;
}
location /{
#将访问请求转向至服务器集群,mycluster和上面upstream mycluster 对应
proxy_pass http://mycluster; #要对应服务器集群配置的名字
# 真实的客户端IP
proxy_set_header X-Real-IP $remote_addr;
# 请求头中Host信息
proxy_set_header Host $host;
# 代理路由信息,此处取IP有安全隐患
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 真实的用户访问协议
proxy_set_header X-Forwarded-Proto $scheme;
}
- 完整配置文件
user nobody;
#工作进程个数,一般跟服务器cpu核数相等,或者核数的两倍
worker_processes 2;
#单个进程最大连接数
events{
worker_connections 1024;
}
http{
keepalive_timeout 65;
gzip on;
#服务器集群
upstream mycluster{
#集群有几台服务器即可配置几台,weight表示权重,权重越大被访问到的几率越大
#这里添加的是上面启动好的两台Tomcat服务器
server 192.168.88.132:8080 weight=1;
server 192.168.88.133:8081 weight=1;
}
#nginx基本配置
server{
listen 80; #端口号
server_name 192.168.88.132; #服务名
location /{
#将访问请求转向至服务器集群,mycluster和上面upstream mycluster 对应
proxy_pass http://mycluster;
# 真实的客户端IP
proxy_set_header X-Real-IP $remote_addr;
# 请求头中Host信息
proxy_set_header Host $host;
# 代理路由信息,此处取IP有安全隐患
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 真实的用户访问协议
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3. 页面测试

网友评论