一、Nginx负载均衡,配置实例
1. 实现效果
浏览器地址栏输入地址 http://192.168.31.100/hello01/a.html,负载均衡效果,平均 8080 和 8081 端口中
2. 准备工作
1.准备俩台tomcat服务器
这里也是用docker安装部署的
sudo docker run -d --name mytomcat01 -p 8080:8080 -v /huanglei/v-nginx/hello01/a.html:/usr/local/tomcat/webapps/hello01/a.html tomcat:8.0
sudo docker run -d --name mytomcat02 -p 8081:8080 -v /huanglei/v-nginx/hello02/a.html:/usr/local/tomcat/webapps/hello02/a.html tomcat:8.0
这里挂载俩个文件到容器中
2.在 nginx 的配置文件中进行负载均衡的配置
3.最终测试
测试url
http://192.168.31.100/hello01/a.html
这里采用的策略是轮训,一个界面出现一次,这个上面第二个图这样出现是正常的,因为我的第二个tomcat服务器中为hello01的目录
二、nginx 分配服务器策略
随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,而且 Nginx 提供了几种分配方式(策略):
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
配置方式:
upstream myserver {
server 192.168.31.100:8081; # 在这儿
server 192.168.31.100:8082;
}
server {
listen 80;
server_name 192.168.31.100;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
weight
weight 代表权重, 默认为 1,权重越高被分配的客户端越多
upstream myserver {
server 192.168.31.100:8081 weight=10; # 在这儿
server 192.168.31.100:8082 weight=10;
}
server {
listen 80;
server_name 192.168.31.100;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
ip_hash
ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
upstream myserver {
ip_hash; // 在这儿
server 192.168.31.100:8081 ;
server 192.168.31.100:8082 ;
}
server {
listen 80;
server_name 192.168.31.100;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
fair(第三方)
fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream myserver {
server 192.168.31.100:8081 ;
server 192.168.31.100:8082 ;
fair; # 在这儿
}
server {
listen 80;
server_name 192.168.31.100;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
|