Nginx实现负载均衡
2017-09-18 10:27
330 查看
Nginx实现负载均衡
Nginx是一个性能非常好的反向代理服务器,用来做负载均衡的绝佳选择。1、何为反向代理?
既然提到反向代理,那么就有正向代理。接下来,我们解释一下这讲个概念:1.1、正向代理
现在很多人喜欢在国外买东西,因为便宜。比如买一罐新西兰的奶粉,如果我们亲自去新西兰一趟,就不划算了,其他不说,就往返的机票都很贵,这样算下来,原本便宜的奶粉,变得比国内的贵了更多。于是你找到在新西兰留学的朋友帮你买一罐,然后邮寄给你,这样就很划算了。那么在此过程中的新西兰朋友就是你的代理人,帮助你完成了你的需求。这就是正向代理。
正向代理其实就是一般的代理,通常所说的代理就是正向代理。
1.2、反向代理
比如你拨打银行客服电话400xxxxxxx,负责接电话的银行客服可能有几百人,你永远都会不知道,接听你电话的客服叫什么、身高、是否帅气或者漂亮;当然,这些你都不关心,你关心的是你的问题是否有人帮你解决。其中400客服总机就是反向代理,你不需要知道真正给你提供服务的是谁。这个例子中的400总机就是反向代理。2、反向代理和负载均衡
反向代理是负载均衡的核心原理,可以理解为负载均衡是反向代理的一个具体实现。负载均衡的图示如下:如上图,负载均衡服务器就好比400客服总机,它是服务器1、服务器2、服务器3的代理,用户通过负载均衡服务器将需求发送给服务器1或者服务器2或者服务器3,具体是那一台服务器在提供服务,用户不需要关心。
3、负载均衡的优点
负载均衡,扩展了网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。换而言之,负载均衡将原本一台服务器做不完的活,交给了其他服务器来处理,这样“雨露均沾”,减轻了一台服务器的压力,同时提高了响应速度(用户不用一直看着浏览器读条了)。4、Nginx的配置
接下来,我们开始进行负载均衡的配置。4.1、准备工作
1.准备2台电脑(或者在一台电脑上安装虚拟机也行),其中一台电脑是windows系统(电脑A),另一台是linux系统(电脑B)。4.2、安装和配置
4.2.1、在电脑B上安装jre环境和2个tomcat服务器,分别是tomcat1和tomcat2。将tomcat2的端口号修改为下图中红色方框的值(因为在一台电脑上不能有2个端口一样的tomcat存在)。修改tomcat2安装目录下的conf/server.xml文件:4.2.2、测试tomcat是否安装成功,分别启动2个Tomcat,关闭Linux服务器的防火墙,在windows系统中访问Tomcat地址(http://电脑B的IP:8080/ 和 http://电脑B的IP:8081/),你会看到tomcat的首页,则表示配置成功。
4.2.3、安装Nginx。在电脑A上安装Nginx,下载地址(点击这里),下载之后解压(解压就行,不需要安装)。
4.2.4、进入Nginx安装目录,打开配置文件conf/nginx.conf,添加如下配置信息:
server { listen 80; #负载均衡服务器的端口 server_name localhost; #负载均衡服务器的主机名称 ... } ... location / { proxy_pass http://qianfeng.com; proxy_redirect default; root html; index index.html index.htm; } ... upstream qianfeng.com{ #weight是权重,表示优先访问那一台服务器,取值一样,表示雨露均沾 server tomcat1的IP:8080 weight=1; server tomcat2的IP:8081 weight=1; }
4.3、测试
在电脑A上使用DOS命令,执行nginx.exe,启动Nginx反向代理服务器(不要关闭DOS窗口)。然后在电脑A上打开浏览器,输入地址:http://localhost/index.jsp。就可以看到访问成功的效果。可以通过修改Tomcat安装目录下的webapps中的ROOT文件夹下的index.jsp中的内容,以便能区分2个Tomcat的项目切换,这就是负载均衡。
最后,我们就可以将项目部署到tomcat1和tomcat2上,之后在通过http://localhost/project_name/ 访问就实现了负载均衡。
4.4、问题
2个tomcat服务器,会导致session也有2个,tomcat1和tomcat2中的session无法进行数据共享,如何进行session共享,我们下一节讲解。相关文章推荐
- centos6.7上使用nginx实现负载均衡!
- Nginx配置upstream实现负载均衡
- Nginx+Tomcat+Memcache实现负载均衡及Session共享
- 基于nginx的负载均衡概述与实现
- windows配置nginx实现负载均衡集群
- Nginx+Tomcat实现负载均衡、动静分离
- nginx实现网站负载均衡测试实例(windows下IIS做负载实测)
- tomcat+nginx+redis实现均衡负载、session共享(一)
- nginx实现负载均衡
- swoole模拟多服务器Nginx反向代理实现负载均衡
- 利用nginx实现负载均衡和动静分离
- tomcat+nginx+redis实现均衡负载、session共享(二)
- 反向代理概念以及apache,nginx配置反向代理实现负载均衡方法
- Windows下Nginx1.8.1+Tomcat7.0.65集成实现负载均衡集群示例
- window设置Nginx+iis实现负载均衡
- tomcat+nginx+redis实现均衡负载、session共享
- tomcat+nginx+redis实现均衡负载、session共享(一)
- nginx提供web服务和实现负载均衡
- windows使用nginx实现网站负载均衡测试实例
- Nginx提供代理服务(网站代理),nginx实现负载均衡集群和高可用集群、nginx实现网站动静页面分离