当前位置: 首页 > 科技观察

Nginx反向代理实现Tomcat集群服务器负载均衡

时间:2023-03-16 23:43:19 科技观察

前言:一、Nginx简介Nginx是一个开源的高性能HTTP和反向代理服务器,用于实现资源缓存、web服务器负载均衡等功能。它的特点是内存少,并发性强。使用nginx网站的用户有:百度、京东、新浪、网易、腾讯、淘宝等,是目前最流行的反向代理服务器之一。二。Tomcat简介Tomcat是一个免费开源的纯JAVA开发的Web应用服务器,可以作为轻量级JAVAEE项目的应用服务器,同时也是一个运行Servlet和JSP的Web容器。三。为什么要配置服务器集群服务器集群:是指很多服务器的集合,执行同一个服务,在客户端看来只有一台服务器。集群可以使用多台计算机进行并行计算,以获得较高的计算速度,也可以使用多台计算机进行备份,使得任何一台机器坏了,整个系统仍然可以正常运行。集群用途:一方面,对于日访问量或并发量巨大的网站,如果只部署一个服务,性能很低,极有可能出现暴风雨请求(2016年双十一天猫淘宝十万峰值并发请求)受不了,随时会挂掉,给企业造成重大损失。需要有多个服务器来分担这个并发请求的压力。另一方面,集群操作可以减少单点故障的数量。即使一台服务器出现故障,其他服务器也能正常运行,确保企业的日常运营不受影响。这是非常有必要的。并实现集群资源的高可用。图片来自宝途网4.负载均衡对于集群来说,负载均衡是指当反向代理服务Nginx收到用户的请求时,会根据权重将请求分发到不同的集群服务器上,从而使各个服务器利器可以尽可能分担请求,减轻服务器压力,提高性能,防止服务器因为高并发而宕机或瘫痪。应用架构:准备工作:说明:(1)测试环境为windows(2)由于tomcat需要jdk,所以需要安装jdk并配置环境变量(3)下载Nginx并解压(Nginx下载地址:http://nginx.org)(4)下载Tomcat(Tomcat下载地址:http://tomcat.apache.org/download-70.cgi)(5)准备使用两台tomcat服务器,一台Nginx服务器(6)同一个测试web项目(只包含一个jsp页面)打成一个war包,放到tomcat1和tomcat2的webapps目录下。:图(1)成功。此时:在浏览器中输入本地环回地址进行测试:http://127.0.0.1如果出现图(2),说明nginx启动成功,服务器运行正常。注意:由于nginx默认端口为80,请确保本机上没有其他应用程序占用该端口。至此,我们就可以进行下一步搭建Tomcat服务器了。在搭建Tomcat服务器之前,我们首先需要安装jdk,因为Tomcat是用java写的,java需要jdk才能运行。这一步不是本文的重点,省略。安装jdk后,需要解压Tomcat服务器压缩文件两份,分别命名为Tomcat1和Tomcat2。如图(3)tomcat集群服务器:在真实环境中,这个服务器可以安装在不同的主机上。各个服务器的目录结构为:图(4)图(4)Conf文件夹下的配置文件server.xml需要将两个tomcat服务的端口改成本机唯一。(如果host不同,不用修改,默认端口为8080)在tomcat1的server.xml中更改服务端口和connector端口(默认)在server.xml中更改服务端口。对于8090和8010,修改server.xml的文件位置为第22行、第70行、第91行:修改后的效果图(5)为:以上步骤完成后,可以进行下一步1.准备测试项目和准备相同的测试web项目,它只有一个index.jsp文件。就在这个文件里写一段代表两个不同服务器的文字来表示区别:在要放入tomcat1的项目的index.jsp中写:“这是四川展益科技,我部署在tomcat1中!”在要放入tomcat2的项目index.jsp中写:“这是四川展益科技,我部署在tomcat2中!”各个工程目录的内部结构如图(6)所示:然后把工程打成war包。然后将工程复制到两个tomcat对应的wabapps文件夹下(见图4)。然后在两个tomcat镜像(4)的bin文件夹中找到startup.bat批处理文件,双击启动服务器。接下来是主要工作2.Nginx配置负载均衡找到图(1)中Nginxconf文件夹下的nginx.conf文件,打开并在该文件的htpp命令模块中添加负载均衡命令(见红标区域)具体添加位置如下图(7)34行和46行)ont-size:9.0000pt;mso-font-kerning:1.0000pt;">各工程目录内部结构为:如图(6):在红色区域添加第34行和46行在行中添加如下命令:在第34行红色区域添加命令如下:upstreamlero{#lero的名称可以自定义,但必须是满足基本命名规则server127.0.0.1:8080;#tomcat1服务器地址server127.0.0.1:8090;#tomcat2服务器地址}在第46行红色区域添加命令如下:proxy_passhttp://lero;#Configure反向代理指向位置完整配置如下图(8)3.启动服务器和mo后修改配置文件,需要重启nginx服务首先在dos命令窗口找到nginx服务器安装目录(例如:f:nginx-1.11.13)然后输入重启命令:nginx-sreload(如果此方法无效,建议强制结束进程)如下图(9):重启tomcat1和tomcat2服务器(点击shutdown.bat批处理文件后,再次点击startup.bat批处理文件重启),以及然后在浏览器地址栏输入127.0.0.1/www.sczhanyi.com/access***第二次访问效果图(10):第二次访问效果图(11)。第三次访问将请求发送到tomcat1,第四次访问将请求发送到tomcat2……至此,实现了Nginx反向代理实现tomcat集群服务器的负载均衡配置。每次访问都会轮流切换服务器,将请求分发到不同的服务器!