1:Nginx负载均衡算法
(1):轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。
upstream tomcat {
server 192.168.200.113:8080 weight=1;
server 192.168.200.114:8080 weight=1;
}
(2):Weight(轮询权值)
Weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的利用主机资源。
upstream tomcat {
server 192.168.200.113:8080 weight=1;
server 192.168.200.114:8080 weight=2;
}
(3):least_conn
lest-connected方式可以更公平的将负载分配到多个机器上面。使用least-connected,nginx不会将请求分发到繁忙的机器上面,而且将新的请求分发的较清闲的机器上面。
upstream tomcat {
least_conn;
server 192.168.200.113:8080 weight=1;
server 192.168.200.114:8080 weight=1;
(4):ip_hash
每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,而且可以有效解决动态网页存在的session共享问题。
upstream tomcat {
ip_hash;
server 192.168.200.113:8080 weight=1;
server 192.168.200.114:8080 weight=1;
(5):fair
比weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器地响应时间来分配请求,响应时间段地优先分配。Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。
upstream tomcat {
fair;
server 192.168.200.113:8080 weight=1;
server 192.168.200.114:8080 weight=1;
(6):url_hash
按访问地URL地哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器地效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。
upstream tomcat {
hash $request_uri;
server 192.168.200.113:8080 weight=1;
server 192.168.200.114:8080 weight=1;
2:nginx 负载均衡集群
三台服务:两台tomcat,一台nginx
在nginx 服务器上
《1》:vim /usr/local/nginx/conf/nginx.conf 编辑主配置文件
《2》:写入:
upstream tomcat {
server 192.168.100.10:8080 weight=1;
server 192.168.100.20:8080 weight=1;
}
location ~ \.jsp$ {
proxy_pass http://tomcat;
}
《3》: /usr/local/nginx/sbin/nginx -t 查看语法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
《4》:/usr/local/nginx/sbin/nginx 重启
《5》:访问 (默认算法是轮询,及两个来回一起)
修改主配置文件: 加入 ip_hash ;
及访问时,最后固定为test2