最近要用到一台nginx和两台tomcat做一个架构,其中nginx 的作用就是负载均衡,整理了一下步骤:
部署环境:三台centos
分别为:1、nginx 192.168.1.213
2、tomcat1 192.168.1.233
3、tomcat2 192.168.1.184
前提条件,nginx、tomcat正常访问首页。网络互通
部署思路:客户端访问nginx负载均衡机(192.168.1.213)上,由1.213调度访问请求到后端的真实tomcat1服务器或者tomcat2服务器上。
nginx负载均衡机(192.168.1.213)上的nginx。conf设置如下:
修改/etc/nginx/nginx.conf
在http段下加入以下代码:
upstream LXL { #####LXL为自定义负载均衡的名字,要记着下面用的到
server 192.168.1.233:8080; #这里本人是开放的8080端口
server 192.168.1.184:8080;
}
server {
listen 8080;
server_name 192.168.1.213;
location / { #对/所有做负载均衡,nginx采用完全转发
proxy_pass http://LXL; #这upstream的名称
proxy_set_header Host $host; #保留用户真实信息
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
ok!到这,关于nginx的负载均衡就算完毕,这只是简单地一种,你们想想,nginx的负载均衡作用是把压力分散到下面的服务器,到底怎么分散呢。nginx给了三种模式
1、轮询(这个为默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能 自动剔除
比如上面那个就是如此
2、指定的权重(加权轮询)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
upstream LXL {
server 192.168.1.233:8080 weight=10 fail_timeout=20s;
server 192.168.1.184:8080 weight=10 fail_timeout=20s;
}
3、IP绑定ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可 以解决session的问题
upstream LXL {
ip_hash;
server 192.168.1.233:8080 fail_timeout=20s;
server 192.168.1.184:8080 fail_timeout=20s;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
OK!关于nginx的负载均衡就到这里吧,
希望对初学者有所帮助
本文出自 “12178027” 博客,请务必保留此出处http://12188027.blog.51cto.com/12178027/1863458
原文地址:http://12188027.blog.51cto.com/12178027/1863458