您的位置 首页 java

Linux环境搭建Nginx+Tomcat负载均衡集群

Tomcat 服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。由于Tomcat处理静态HTML的能力运不及Apache或者 Nginx ,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。

  • nginx 服务器能支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低.

通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂请求等问题,不能单独应用于生产环境下,目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,简单来说就是Nginx作为负载均衡器,响应客户端的请求,Tomcat作为应用服务器的负载集群,处理客户端的请求,也就是说Nginx将访问请求转发给后端服务器池的服务器来处理。网站拓扑图如图所示:

案例环境:

主机操作系统IP地址主要软件 Nginx服务器RedHat7.3 x86_64192.168.113.151nginx-1.12.0.tar.gzTomcat服务器1CentOS7.4 x86_64192.168.113.129jdk-8u91-linux-x64.tar.gz / apache-tomcat-8.5.16.tar.gzTomcat服务器2CentOS7.4 x86_64192.168.113.150jdk-8u91-linux-x64.tar.gz / apache-tomcat-8.5.16.tar.gz

  • Tomcat1 server配置

1.启动主机后关闭防火墙

systemctl disable firewalld.service //禁用防火墙服务
systemctl stop firewalld.service //关闭防火墙服务
 

2.安装JDK,配置 Java 环境

(1).解压jdk软件至/opt目录下,并将解压后生成的jdk文件夹移到/usr/local/下,改名为java。

tar zxvf jdk-7u65-linux-x64.gz -C /opt
mv jdk1.7.0_65/ /usr/local/java
 

(2).在/etc/ profile .d/下建立java.sh脚本。

[root@centos7-1 ~]# vim /etc/profile.d/java.sh 
export JAVA_HOME=/usr/local/java //设置Java根目录
export PATH=$PATH:$JAVA_HOME/bin //在PATH环境变量中添加Java根目录下的bin/子目录
 

(3).将java.sh脚本导入到环境变量,使其生效

source /etc/profile.d/java.sh
 

(4).运行java-version命令查看java版本是否和之前安装的一致。

[root@centos7-1 ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
 

3.安装配置Tomcat

(1).解压apache-tomcat-8.5.16.tar.gz包至/opt目录,并将解压后生成的文件夹移动到/usr/local/下,改名为tomcat8。

tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
 

(2).启动Tomcat

[root@centos7-1 ~]# /usr/local/tomcat8/bin/startup.sh 
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
 

Tomcat默认运行在8080端口,运行netstat命令查看8080端口监听的信息。

[root@centos7-1 ~]# netstat -ntap | grep 8080 
tcp6 0 0 :::8080 :::* LISTEN 1583/java
 

(3).打开浏览器访问测试 如果出现x下面的界面,则表示Tomcat已经配置启动成功。

4.建立Java的web站点

(1).在根目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件。

[root@centos7-1 ~]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
 

(2).在webapp1目录下建立一个index.jsp的测试页面。

[root@centos7-1 ~]# vim /web/webapp1/index.jsp
 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注释
<html>
 <head>
 <title>JSP test1 page</title> //测试页标题
 </head>
 <body>
 <% out.println("Welcome to test site,");%> //测试页主体内容
 </body>
</html>
 

(3).修改Tomcat的server.xml文件。

定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1,在host段增加context段。

[root@centos7-1 ~]# vim /usr/local/tomcat8/conf/server.xml 
<Host name="localhost" appBase="webapps"
 unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
 
  • docBase:web应用的文档基准目录
  • reloadable: 设置监视“类”是否变化
  • path=””: 设置默认“类

(4).关闭Tomcat,再重新启动。

/usr/local/tomcat8/bin/shutdown.sh //关闭Tomcat
/usr/local/tomcat7/bin/startup.sh //重启Tomcat
 

(5).通过浏览器访问, 出现下面的界面,说明Tomcat站点配置成功并且能够运行JSP了。

  • Tomcat2 server配置
  • Tomcat2 server配置方法基本同Tomcat1,其中包括:

1.启动主机后关闭防火墙。

2.安装JDK,配置Java环境,版本与Tomcat1 server一致。

3.安装配置Tomcat,版本与Tomcat1 server一致。

4.创建/web/webapp1目录,修改Tomcat配置文件server.xml文件,将网站文件目录更改到/web/webapp1/路径下。

5.在/web/webapp1/路径下建立index.jsp,为了区别将测试页index.jsp的内容更改如下:

[root@localhost ~]# vim /web/webapp1/index.jsp
 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注释
<html>
 <head>
 <title>JSP test2 page</title> //测试页标题
 </head>
 <body>
 <% out.println("Welcome to test site,");%> //测试页主体内容
 </body>
</html>
 

6.启动tomcat,浏览器访问, 出现下面的界面,说明Tomcat站点配置成功并且能够运行JSP了。

  • Nginx服务器配置
  • 在Nginx服务器192.168.113.151上安装Nginx,反向代理两个Tomcat站点,并实现 负载均衡
  • 1.关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
 
  • 2.安装支持软件
yum install gcc gcc-c++ make pcre pcre-devel zlib-devel openssl-devel -y
 
  • 3.解压并安装Nginx
useradd -s /bin/false www //创建运行用户www,强制禁止登陆系统shell环境
tar zxvf nginx-1.12.0.tar.gz -C /opt //解压nginx软件至/opt目录下
cd /opt/nginx-1.12.0/ //切换到解压后的nginx文件夹目录下
./configure  //配置nginx的具体选项
--prefix=/usr/local/nginx  
--user=www 
--group=www 
--with-file-aio 
--with-http_stub_status_module 
--with-http_gzip_static_module 
--with-http_flv_module 
--with-http_ssl_module
 
  • –prefix=/usr/l,ocal/nginx:指定nginx安装路径
  • –user=www,–group=www:指定运行的用户和组
  • –with-file-aio:启用文件修改支持
  • –with-http_stub_status_module:启用状态统计
  • –with-http_gzip_static_module:启用gzip静态压缩
  • –with-http_flv_module:启用flv模块,提供寻求内存使用基于时间的偏移量文件
  • –with-http_ssl_module:启用ssl模块

4.配置nginx.conf

vim /usr/local/nginx/conf/nginx.conf
 

(1).在http{…}中加入以下代码,设定负载均衡的服务器列表,weight参数表示权值,权值越高被分配到的概率越大。为了使测试效果明显,把权重设置为一样。

upstream tomcat_server { 
 server 192.168.113.129:8080 weight=1;
 server 192.168.113.150:8080 weight=1; 
 } //配置后端服务池tomcat_server,以提供响应数据
 

(2).在http{…} – server{…} – location /{…}中加入一行“proxy_pass ” 。

location / {
 root html;
 index index.html index.htm;
 proxy_pass ; //配置将访问请求转发给后端服务器池的服务器处理
 }
 

利用以上方式,把Nginx的默认站点通过proxy_pass方法代理到了设定好的tomcat_server负载均衡服务器组上。

5.测试nginx配置文件是否正确。

[root@RedHat7-1 ~]# /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
 

6.启动Nginx服务并查看其端口

[root@RedHat7-1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //创建nginx主程序的软链接,方便调用nginx命令
[root@RedHat7-1 ~]# nginx //启动nginx服务
[root@RedHat7-1 ~]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17819/nginx: master
[root@RedHat7-1 ~]# killall -1 nginx //重启nginx服务
 
  • 测试负载均衡效果

1.打开浏览器访问

2.不断刷新浏览器测试,可以看到由于权重相同,页面会反复在以下两个页面切换。

第一次访问,出现test1的测试页面,刷新后,第二次访问出现test2的测试页面,这说明负载均衡集搭建成功,已经可以在两个tomcat server站点间进行切换了。

真实环境中,服务器集群站点的内容相同,这里是为了测试负载均衡集的效果而建立2个不同的测试页面。

其实很多技术不是一两篇文章就能说的清楚的。

那如何快速有效的学习并精通呢?

转发!

转发!

转发后关注作者,私信关键词:“ 架构 ”

以下价值1990元资料,免费领取!

文章来源:智云一二三科技

文章标题:Linux环境搭建Nginx+Tomcat负载均衡集群

文章地址:https://www.zhihuclub.com/183940.shtml

关于作者: 智云科技

热门文章

评论已关闭

5条评论

  1. A retrospective study of the relationship between postoperative urine output and one year transplanted kidney function Effect on Blood Glucose

  2. Guideline US Food and Drug Administration Elucidation of estrogen and erythropoietin receptors in LA7 cells

  3. Patients with altered mental status and hypercalcemia may benefit from decreasing or discontinuing use of sedating medications Monitor Closely 1 fondaparinux and aspirin citric acid sodium bicarbonate both increase anticoagulation

网站地图