负载均衡(Nginx)使用教程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡(Nginx)使用教程相关的知识,希望对你有一定的参考价值。
nginx实例
//************说明*************//
此文章基于Nginx对多台tomcat服务器进行负载均衡
//************准备工作*************//
nginx安装包下载:http://nginx.org/en/download.html
nginx在线手册:http://shouce.jb51.net/nginx/index.html
tomcat1:8081端口(本地安装启动)
tomcat2:8082端口(本地安装启动)
tomcat3:8080端口(局域网内安装启动)
//************Nginx安装启动*************//
本文采用的是较为稳定的nginx-1.11.1版本
①:直接解压到相关路径(本文解压在E盘下)
②:启动主要有两种方式,如下:
1、直接双击nginx.exe启动(注:正常是一闪而过)
2、用命令提示符切换到nginx目录下,输入start nginx.exe或者start nginx启动(一闪而过)
以上2种方法用于启动nginx服务,可通过进程管理查看是否有nginx进程(如:nginx.exe *32)或者通过浏览器输入localhost查看页面是否如下:
浏览器出现如上页面,则表示nginx启动成功
//************Nginx常用命令*************//
start nginx :启动nginx服务
nginx -s stop :停用或结束nginx服务
nginx -s reload :重启nginx服务,一般用于配置文件修改后
//************tomcat服务准备*************//
3台tomcat服务器启动完成,(本机2台,局域网内1台)
//************Nginx配置文件修改*************//
nginx.conf(路径:E:\nginx-1.11.1\conf\nginx.conf)
############负载均衡配置########### upstream localhost { server 192.168.1.103:8080; server 192.168.1.103:8081; server 192.168.1.154:8080; } location / { root html; index index.html index.htm; proxy_pass http://localhost; #localhost与负载均衡upstream配置名称localhost 一致 }
在对整个文件不做任何修改的前期下,配置upstream、proxy_pass这两项即可完成负载均衡的配置。
然后命令提示符执行nginx -s reload,在浏览器输入proxy_pass配置的地址 http://localhost/ 查看页面,不断刷新页面查看服务器是否切换,效果如下:
端口为:8080的服务器
本机端口为:8081的服务器
局域网内端口为:8080的服务器
//************nginx负载均衡的4种配置实例*************//
1、轮询
轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
配置的例子如下:
http{ upstream localhost{ server 192.168.1.103:8080; server 192.168.1.103:8081; server 192.168.1.154:8080; } .... server{ listen 80; ... location / { proxy_pass http://localhost; } }
上面只有1个DNS入口被插入到upstream节,即sampleapp,同样也在后面的proxy_pass节重新提到。
2、最少连接
Web请求会被转发到连接数最少的服务器上。
配置的例子如下:
http{ upstream localhost{ least_conn; server 192.168.1.103:8080; server 192.168.1.103:8081; server 192.168.1.154:8080; } .... server{ listen 80; ... location / { proxy_pass http://localhost; } }
上面的例子只是在upstream节添加了least_conn配置。其它的配置同轮询配置。
3、IP地址哈希
前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
配置的例子如下:
http{ upstream localhost{ ip_hash; server 192.168.1.103:8080; server 192.168.1.103:8081; server 192.168.1.154:8080; } .... server{ listen 80; ... location / { proxy_pass http://localhost; } }
上面的例子只是在upstream节添加了ip_hash配置。其它的配置同轮询配置。
4、基于权重的负载均衡
基于权重的负载均衡即Weighted Load Balancing,这种方式下,我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
配置的例子如下:
http{ upstream localhost{ server 192.168.1.103:8080 weight=2; server 192.168.1.103:8081 weight=5; server 192.168.1.154:8080; } .... server{ listen 80; ... location / { proxy_pass http://localhost; } }
上面的例子在服务器地址和端口后weight=2的配置,这意味着,每接收到8个请求,前2个请求会被分发到第一个服务器,第3-7个请求会分发到第二个服务器,第8个请求会分发到第三台服务器,其它的配置同轮询配置。
还要说明一点,基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。
注:文章多有不足之处,仅供参考!
本文出自 “攻城狮之旅” 博客,请务必保留此出处http://samuele.blog.51cto.com/11764688/1792502
以上是关于负载均衡(Nginx)使用教程的主要内容,如果未能解决你的问题,请参考以下文章