搭建Nginx+Tomcat负载均衡集群

一、示例图

在这里插入图片描述

二、实验环境

主机名 ip地址 扮演角色
Nginx 192.168.100.7 Nginx服务器
Tomcat-01 192.168.100.8 Tomcat服务器
Tomcat-02 192.168.100.9 Tomcat服务器

三、实验要求

让客户机在访问的时候,可以让两台Tomcat服务器的页面来回切换,实现负载均衡

四、实验步骤

(1)首先先搭建两台Tomcat服务器

******两台Tomcat服务器搭建步骤相同,但是网页内容不同,这样测试时方便辨认
******1)做基础配置
[root@centos7-008 ~]# hostnamectl set-hostname tomcat-01
[root@centos7-008 ~]# su
[root@tomcat-01 ~]# systemctl stop firewalld
[root@tomcat-01 ~]# setenforce 0
setenforce: SELinux is disabled
[root@tomcat-01 ~]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 写保护,将以只读方式挂载
******2)搭建tomcat服务器
[root@tomcat-01 ~]# yum -y remove java  (检查是否已经安装java)
已加载插件:fastestmirror
参数 java 没有匹配
不删除任何软件包
[root@tomcat-01 ~]# ll (上传java的软件包)
总用量 177124
-rw-------. 1 root root      1262 9   3 18:18 anaconda-ks.cfg
-rw-r--r--  1 root root 181367942 2   1 00:15 jdk-8u91-linux-x64.tar.gz
[root@tomcat-01 ~]# tar xf jdk-8u91-linux-x64.tar.gz   (解压)
[root@tomcat-01 ~]# mv jdk1.8.0_91/ /usr/local/java (移动到java目录)
[root@tomcat-01 ~]# vim /etc/profile.d/java.sh  (编写Java脚本,优化执行路径)
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin 
[root@tomcat-01 ~]# chmod +x /etc/profile.d/java.sh   (添加可执行权限)
[root@tomcat-01 ~]# source /etc/profile.d/java.sh     (执行脚本)
[root@tomcat-01 ~]# echo $PATH  (查看是否优化成功)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin
[root@tomcat-01 ~]# ll  (上传tomcat的软件包)
总用量 186324
-rw-------. 1 root root      1262 9   3 18:18 anaconda-ks.cfg
-rw-r--r--  1 root root   9417469 2   1 00:21 apache-tomcat-8.5.16.tar.gz
-rw-r--r--  1 root root 181367942 2   1 00:15 jdk-8u91-linux-x64.tar.gz
[root@tomcat-01 ~]# mkdir /usr/local/tomcat  (创建主目录)
[root@tomcat-01 ~]# tar xf apache-tomcat-8.5.16.tar.gz -C /usr/local/tomcat/ (解压)
[root@tomcat-01 ~]# /usr/local/tomcat/apache-tomcat-8.5.16/bin/startup.sh  (启动)
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-8.5.16
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-8.5.16
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-8.5.16/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-8.5.16/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.16/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat-01 ~]# netstat -anpt | grep java  (查看端口号确认已经成功启动)
tcp6       0      0 :::8080                 :::*                    LISTEN      1376/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1376/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1376/java  
******3)在两台tomcat服务器上分别写上不同的网页
[root@tomcat-01 ~]# mkdri -pv /web/webapp1
bash: mkdri: 未找到命令
[root@tomcat-01 ~]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@tomcat-01 ~]# 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 Tomcat-001 !!!!!!");%>  
  </body>
</html>
保存退出
[root@tomcat-01 ~]# vim /usr/local/tomcat/apache-tomcat-8.5.16/conf/server.xml (编写配置文件)
修改为:
。。。。。。
148       <Host name="localhost"  appBase="/web"
149             unpackWARs="true" autoDeploy="true">
150 <Context docBase="/web/webapp1" path="" reloadable="false"></Context> 
151         <!-- SingleSignOn valve, share authentication between web applications
。。。。。。
保存退出
******4)重新启动tomcat服务
[root@tomcat-01 ~]# /usr/local/tomcat/apache-tomcat-8.5.16/bin/shutdown.sh  (关闭)
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-8.5.16
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-8.5.16
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-8.5.16/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-8.5.16/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.16/bin/tomcat-juli.jar
[root@tomcat-01 ~]# /usr/local/tomcat/apache-tomcat-8.5.16/bin/startup.sh  (启动)
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-8.5.16
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-8.5.16
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-8.5.16/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-8.5.16/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.16/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat-01 ~]# netstat -antp | grep java  (检查端口确认服务已经成功启动)
tcp6       0      0 :::8080                 :::*                    LISTEN      1463/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1463/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1463/java  

利用测试机分别访问两个tomcat服务器,测试是否可以正常访问
tomcat1
tomcat2
成功后开始搭建Nginx服务器

(2)搭建Nginx服务器

******1)先做基础配置
[root@centos7-007 ~]# hostnamectl set-hostname Nginx
[root@centos7-007 ~]# su
[root@nginx ~]# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 写保护,将以只读方式挂载
[root@nginx ~]# systemctl stop firewalld
[root@nginx ~]# setenforce 0
setenforce: SELinux is disabled
******2)安装Nginx必要组件和创建组等
[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel
。。。。。。
完毕!
[root@nginx ~]# groupadd www 
[root@nginx ~]# useradd -g www -s /bin/false www (指定登录shell为/bin/false
————————————————————————————————————华丽分割线————————————————————————————————————
这个时候有人就会想一般不是会指定为/sbin/nologin嘛
/bin/false/sbin/nologin的区别:
/bin/false是最严格的禁止login选项,一切服务都不能用
/sbin/nologin只是不能登录系统而已
—————————————————————————————————————————————————————————————————————————————————
******3)上传源码包,配置、编译、安装
[root@nginx ~]# ll
总用量 964
-rw-------. 1 root root   1220 9   3 18:16 anaconda-ks.cfg
-rw-r--r--  1 root root 980831 2   1 00:49 nginx-1.12.0.tar.gz
[root@nginx ~]# tar xf nginx-1.12.0.tar.gz -C /usr/src/
[root@nginx ~]# cd /usr/src/nginx-1.12.0/
[root@nginx nginx-1.12.0]# ./configure --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  &&make &&make install
————————————————————————————————————华丽分割线——————————————————————————————————————
配置模块详解
1)--user=www --group=www          指定运行的用户、组
2)--with-file-aio                 启用文件修改支持
3)--with-http_stub_status_module  启用状态统计
4)--with-http_gzip_static_module  启用gzip静态压缩
5)--with-http_flv_module          启用flv模块,提供寻求内存使用基于时间的偏移量文件 
6)--with-http_ssl_module          启用ssl模块
———————————————————————————————————————————————————————————————————————————————————
******4)编辑nginx的配置文件
[root@nginx nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf (添加)
。。。。。。
 34  upstream tomcat_server {
    
    
 35           server 192.168.100.8:8080 weight=1;
 36          server 192.168.100.9:8080 weight=1;
 37   }      
 38
。。。。。。 (下面的location写一个就行,可以把另一个删掉,或者在原本就有的项上修改)
 46    location / {
    
    
 47               root   html;
 48               index  index.html index.htm;
 49               proxy_pass http://tomcat_server;
 50           }   
 51       
。。。。。。    
保存退出
[root@nginx nginx-1.12.0]# /usr/local/nginx/sbin/nginx -t (检查nginx语法是否正确)
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok (ok表示正确)
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx nginx-1.12.0]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (启动)
[root@nginx nginx-1.12.0]# netstat -antp | grep nginx (查看端口确认已经启动)
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3978/nginx: master  

(3)测试

使用测试机访问Nginx服务,查看是否会自动切换页面
第一次访问
第一次访问
第二次访问
第二次访问
至此,Nginx+tomcat负载均衡集群已经搭建完成!

猜你喜欢

转载自blog.csdn.net/rzy1248873545/article/details/113479349