请选择 进入手机版 | 继续访问电脑版
JAVEN

Nginx实现负载均衡

所在版块: 课堂笔记 2017-09-18 11:29 [复制链接] 查看: 540|回复: 1
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;    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
4.3、测试

在电脑A上使用DOS命令,执行nginx.exe,启动Nginx反向代理服务器(不要关闭DOS窗口)。然后在电脑A上打开浏览器,输入地址:http://localhost/index.jsp。就可以看到访问成功的效果。

可以通过修改Tomcat安装目录下的webapps中的ROOT文件夹下的index.jsp中的内容,以便能区分2个Tomcat的项目切换,这就是负载均衡。
  • 1

最后,我们就可以将项目部署到tomcat1和tomcat2上,之后在通过http://localhost/project_name/ 访问就实现了负载均衡。

4.4、问题

2个tomcat服务器,会导致session也有2个,tomcat1和tomcat2中的session无法进行数据共享,如何进行session共享,我们下一节讲解。

回复

使用道具 举报

smlqf7

该用户从未签到

发表于 2018-7-28 00:28:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我的博客

QQ|Archiver|手机版|小黑屋|课堂笔记  

GMT+8, 2018-12-12 10:27 , Processed in 0.083983 second(s), 28 queries .

快速回复 返回列表