-
关闭SELinux:
- 查看Selinux的状态:
getenforce
- 临时关闭:
临时关闭后打开:setenforce 0
setenforce 1
- 永久关闭:
编辑配置文件:
如果没有vim命令请安装vim,或使用vi,安装vim命令:vim /etc/selinux/config
修改配置:yum -y install vim
需要重启后生效。#SELINUX=enforcing #打开 SELINUX=disabled #关闭
如果现在不方便重启,临时关闭与永久关闭结合使用。
- 查看Selinux的状态:
-
安装httpd并配置:
- 安装httpd:
yum -y install httpd
- 启动httpd:
查看是否启动:systemctl start httpd.service
systemctl status httpd.service
- 设置httpd开机自启:
查看是否设置了开机自启:systemctl enable httpd.service
systemctl list-unit-files | grep httpd.service
- 开启httpd的http(s)端口:
- 查看防火墙是否开启:
systemctl status firewalld
- 开启防火墙:
systemctl start firewalld
- 查看防火墙是否开机自启:
systemctl list-unit-files | grep firewalld
- 开启防火墙的开机自启:
systemctl enable firewalld.service
- 查看80/443端口是否开放:
firewall-cmd --list-ports
- 开启80/443端口(需要重启防火墙):
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent
- 重启防火墙:
或:systemctl restart firewalld.service
firewall-cmd --reload
- 查看已开放端口:
至此httpd就可以访问了。firewall-cmd --list-ports
通过ip访问:http://192.168.113.151/
- 查看防火墙是否开启:
- 安装httpd:
-
安装java 8:
- 查看是否安装了java(查看已安装java版本):
查看java安装路径:java -version
或:whereis java
which java
- 下载java:
- java全版本下载网页:
https://www.oracle.com/technetwork/java/javase/downloads/index.html
- 本教程安装java 8,在上述网页中找到java 8下载网页:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 下载Linux x64(根据自己的需要下载)版:
下载后使用FlashFXP、Xftp 6等工具上传到服务器。
路径为:/usr/java/jdk-8u191-linux-x64.tar.gz
- 解压jdk:
解压后的路径:tar -zxvf jdk-8u191-linux-x64.tar.gz
/usr/java/jdk1.8.0_191
- 配置java环境变量:
编辑环境变量文件:
在最下面添加下列代码:vim /etc/profile
#set java jdk1.8.0_191 environment JAVA_HOME=/usr/java/jdk1.8.0_191 JRE_HOME=/usr/java/jdk1.8.0_191/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export JAVA_HOME JRE_HOME CLASS_PATH PATH
- 刷新环境变量:
source /etc/profile
- 测试java:
java -version
- java全版本下载网页:
- 查看是否安装了java(查看已安装java版本):
-
安装Tomcat 9并配置:
- 下载tomcat 9:
tomcat 官网:http://tomcat.apache.org/
tomcat 9 下载网址:https://tomcat.apache.org/download-90.cgi
下载到/usr/java文件夹下:wget -P /usr/java/ http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
- 解压tomcat 9:
tar -zxvf apache-tomcat-9.0.12.tar.gz
- 重命名解压后的文件:
复制tomcat9为tomcat9-1,用于集群:mv apache-tomcat-9.0.12 tomcat9
cp -r tomcat9 tomcat9-1
- 设置开机启动时的java环境变量(开机启动tomcat时,系统环境变量还未加载,需要在tomcat中单独配置java环境变量):
- tomcat9配置:
编辑tomcat配置文件:
添加以下内容(位置在# OS specific support. $var _must_ be set to either true or false.前面):vim /usr/java/tomcat9/bin/catalina.sh
JAVA_HOME=/usr/java/jdk1.8.0_191 JRE_HOME=/usr/java/jdk1.8.0_191/jre # 注意此时的位置 # OS specific support. $var _must_ be set to either true or false.
- tomcat9-1配置:
编辑tomcat配置文件:
添加以下内容(位置在# OS specific support. $var _must_ be set to either true or false.前面):vim /usr/java/tomcat9-1/bin/catalina.sh
JAVA_HOME=/usr/java/jdk1.8.0_191 JRE_HOME=/usr/java/jdk1.8.0_191/jre # 注意此时的位置 # OS specific support. $var _must_ be set to either true or false.
- tomcat9配置:
- 创建tomcat开机启动文件,并进行相关配置:
- tomcat9配置:
- 创建文件:
vim /usr/lib/systemd/system/tomcat9.service
- 新增内容:
[Unit] Description=tomcat9 After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=oneshot ExecStart=/usr/java/tomcat9/bin/startup.sh ExecStop=/usr/java/tomcat9/bin/shutdown.sh ExecReload=/bin/kill -s HUP $MAINPID RemainAfterExit=yes [Install] WantedBy=multi-user.target
- 创建文件:
- tomcat9-1配置:
- 创建文件:
vim /usr/lib/systemd/system/tomcat9-1.service
- 新增内容:
[Unit] Description=tomcat9-1 After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=oneshot ExecStart=/usr/java/tomcat9-1/bin/startup.sh ExecStop=/usr/java/tomcat9-1/bin/shutdown.sh ExecReload=/bin/kill -s HUP $MAINPID RemainAfterExit=yes [Install] WantedBy=multi-user.target
- 创建文件:
- 开启tomcat9-1前的准备:
说明:
tomcat9使用默认端口配置即可,tomcat9-1需要修改端口,否则启动时会出现端口冲突。
编辑tomcat9-1配置文件:
修改内容如下:vim /usr/java/tomcat9-1/conf/server.xml
- 修改:等待shutdown命令的TCP / IP端口号:
将 <Server port="8005" shutdown="SHUTDOWN"> 修改为: <Server port="8006" shutdown="SHUTDOWN">
- 修改:http(s)端口:
将: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 修改为: <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
- 修改:AJP 连接端口与https端口:
将 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 修改为 <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
- 修改:等待shutdown命令的TCP / IP端口号:
- 开启tomcat9、tomcat9-1的http(s)端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=8081/tcp --permanent firewall-cmd --zone=public --add-port=8443/tcp --permanent firewall-cmd --zone=public --add-port=8444/tcp --permanent firewall-cmd --reload firewall-cmd --list-ports
- 开启tomcat:
查看tomcat是否启动:systemctl start tomcat9 systemctl start tomcat9-1
systemctl status tomcat9 systemctl status tomcat9-1
- 打开tomcat开机自启:
查看tomat是否打开了开机自启:systemctl enable tomcat9 systemctl enable tomcat9-1
上述命令会查出开机启动名字带有tomcat的启动项是否开启了开机启动。systemctl list-unit-files | grep tomcat
至此tomcat9、tomcat9-1就可以访问了。
tomcat9:http://192.168.113.151:8080/
tomcat9-1:http://192.168.113.151:8081/
- tomcat9配置:
- 下载tomcat 9:
-
安装mod_jk:
- mod_jk依赖安装:
yum -y install gcc httpd-devel
- mod_jk下载与解压:
网址:https://tomcat.apache.org/download-connectors.cgiwget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz tar -zxvf tomcat-connectors-1.2.46-src.tar.gz
- 编译及安装:
在tomcat-connectors-1.2.46-src/native/文件夹下执行:
进入源码文件夹:
配置安装:cd tomcat-connectors-1.2.46-src/native/
编译及安装:./configure --with-apxs=/usr/bin/apxs
make && make install
- mod_jk依赖安装:
-
配置mod_jk:
- 找到下载的mod_jk中的conf文件夹下,查看是否存在httpd-jk.conf、uriworkermap.properties、workers.properties:
cd /usr/java/doc/tomcat-connectors-1.2.46-src/conf/ ls
- 将conf文件夹中的内容全都复制到httpd安装配置文件夹(/etc/httpd/conf)下:
cp httpd-jk.conf /etc/httpd/conf cp uriworkermap.properties /etc/httpd/conf cp workers.properties /etc/httpd/conf
- 编辑httpd.conf文件:
让httpd加载mod_jk:
在末尾加上:cd /etc/httpd/conf vim httpd.conf
IncludeOptional conf/httpd-jk.conf
- 编辑httpd-jk.conf文件:
将前面的#去掉(取消注释),并更改为uriworkermap.properties的正确路径,如下:vim httpd-jk.conf
JkMountFile conf/uriworkermap.properties
- 编辑workers.properties文件:
配置集群的tomcat服务器:
定时(默认每分钟)刷新workers.properties:
workers.properties配置文件中列举了两个配置,分别为node1、node2,将带有node1、node2的配置全部都注释掉(前面增加#)。vim workers.properties
添加以下内容:- tomcat0配置:
worker.balancer.balance_workers=tomcat0 worker.tomcat0.reference=worker.template worker.tomcat0.host=localhost worker.tomcat0.port=8009 worker.tomcat0.activation=A
- tomcat1配置:
worker.balancer.balance_workers=tomcat1 worker.tomcat1.reference=worker.template worker.tomcat1.host=localhost worker.tomcat1.port=8010 worker.tomcat1.activation=A
- 编辑uriworkermap.properties文件:
将全部请求都交给tomcat处理,新增如下内容:vim uriworkermap.properties
/*=balancer
- 重启httpd:
访问httpd:http://192.168.113.151/systemctl restart httpd
显示的是tomcat页面。
- tomcat0配置:
- 找到下载的mod_jk中的conf文件夹下,查看是否存在httpd-jk.conf、uriworkermap.properties、workers.properties:
-
负载均衡:
- tomcat9中:
- 创建文件夹:
mkdir /usr/java/tomcat9/webapps/test/
- 创建页面:
新增内容:vim /usr/java/tomcat9/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Tomcat0 集群测试</title> </head> <body> <h1>Tomcat0 集群测试</h1> </body> </html>
- 创建文件夹:
- tomcat9-1中:
- 创建文件夹:
mkdir /usr/java/tomcat9-1/webapps/test/
- 创建页面:
vim /usr/java/tomcat9-1/webapps/test/index.jsp
- 新增内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Tomcat1 集群测试</title> </head> <body> <h1>Tomcat1 集群测试</h1> </body> </html>
- 创建文件夹:
- 编辑workers.properties文件:
在tomcat0配置下新增:vim /etc/httpd/conf/workers.properties
在tomcat1配置下新增:worker.tomcat0.lbfactor=2
说明:worker.tomcat1.lbfactor=1
lbfactor:整数,负载平衡因子。
为了看出效果,tomcat0的权重为2,tomcat的权重为1,刷新页面时,没出现两次tomcat0,才出现一次tomcat1。
刷新页面网址:http://192.168.113.151/test/index.jsp
- tomcat9中:
-
session共享:
- 编辑tomcat9的server.xml配置文件:
修改下面的标签:vim /usr/java/tomcat9/conf/server.xml
在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat0">标签内新增下列代码:修改 <Engine name="Catalina" defaultHost="localhost"> 为 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat0">
其中:<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"> <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/> <!-- <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> --> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="5000" selectorTimeout="100" maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/usr/java/tomcat9/tmp/war-temp/" deployDir="/usr/java/tomcat9/tmp/war-deploy/" watchDir="/usr/java/tomcat9/tmp/war-listen/" watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="5000" selectorTimeout="100" maxThreads="6"/> <!-- 其中虚拟机要将address="auto"中的auto改为localhost,或者改为本地ip -->
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/usr/java/tomcat9/tmp/war-temp/" deployDir="/usr/java/tomcat9/tmp/war-deploy/" watchDir="/usr/java/tomcat9/tmp/war-listen/" watchEnabled="false"/> <!-- 其中tempDir、deployDir、watchDir改为本tomcat的位置 -->
- 编辑tomcat9-1的server.xml配置文件:
vim /usr/java/tomcat9-1/conf/server.xml
在<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">标签内新增内容如上所示。修改 <Engine name="Catalina" defaultHost="localhost"> 为 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
- 新建一个名称为test的web项目,在web.xml中添加:
<distributable/>
- index.jsp页面编写:
<%@ page import="java.text.SimpleDateFormat"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Tomcat 集群测试</title> </head> <body> <% String date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()); System.out.println(date); out.println(date + "<br>"); String uuid = (String) session.getAttribute("uuid"); if (uuid == null || uuid == "") { System.out.println("uid为空,创建uuid"); out.println("uid为空,创建uuid" + "<br>"); uuid = UUID.randomUUID().toString(); System.out.println("创建的uuid为:" + uuid); out.println("创建的uuid为:" + uuid + "<br>"); session.setAttribute("uuid", uuid); } else { System.out.println("uuid为:" + uuid); out.println("uuid为:" + uuid + "<br>"); } System.out.println("session id为:" + session.getId()); out.println("session id为:" + session.getId() + "<br>"); %> </body> </html>
- 依次启动httpd、tomcat9、tomcat9-1:
查看两个tomcat日志,和以前启动并没有什么区别。systemctl start httpd systemctl start tomcat9 systemctl start tomcat9-1
- 开通端口45564/udp,非tcp:
两个tomcat日志分别会输入:firewall-cmd --zone=public --add-port=45564/udp --permanent firewall-cmd --reload firewall-cmd --list-ports
26-Oct-2018 13:46:22.612 INFO [Membership-MemberAdded.] org.apache.catalina.ha.tcp.SimpleTcpCluster.memberAdded Replication member added:[org.apache.catalina.tribes.membership.MemberImpl[tcp://{127, 0, 0, 1}:5001,{127, 0, 0, 1},5001, alive=42615, securePort=-1, UDP Port=-1, id={115 39 63 118 80 0 70 -54 -82 0 36 -55 97 44 88 -96 }, payload={}, command={}, domain={}]] 26-Oct-2018 13:46:22.686 INFO [GroupChannel-Heartbeat[Catalina-Channel]-1] org.apache.catalina.tribes.io.BufferPool.getBufferPool Created a buffer pool with max size:[104857600] bytes of type: [org.apache.catalina.tribes.io.BufferPool15Impl] 26-Oct-2018 13:46:22.696 INFO [GroupChannel-Heartbeat[Catalina-Channel]-1] org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.report ThroughputInterceptor Report[ Tx Msg:1 messages Sent:0.00 MB (total) Sent:0.00 MB (application) Time:0.01 seconds Tx Speed:0.07 MB/sec (total) Tx Speed:0.07 MB/sec (application) Error Msg:0 Rx Msg:0 messages Rx Speed:0.00 MB/sec (since 1st msg) Received:0.00 MB] 26-Oct-2018 13:46:22.711 INFO [GroupChannel-Heartbeat[Catalina-Channel]-1] org.apache.catalina.tribes.tipis.AbstractReplicatedMap.mapMemberAdded Map member added:[org.apache.catalina.tribes.membership.MemberImpl[tcp://{127, 0, 0, 1}:5001,{127, 0, 0, 1},5001, alive=42615, securePort=-1, UDP Port=-1, id={115 39 63 118 80 0 70 -54 -82 0 36 -55 97 44 88 -96 }, payload={}, command={}, domain={}]]
说明一切就绪了。26-Oct-2018 13:46:22.618 INFO [Tribes-Task-Receiver[Catalina-Channel]-1] org.apache.catalina.tribes.io.BufferPool.getBufferPool Created a buffer pool with max size:[104857600] bytes of type: [org.apache.catalina.tribes.io.BufferPool15Impl] 26-Oct-2018 13:46:22.706 INFO [Tribes-Task-Receiver[Catalina-Channel]-3] org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.report ThroughputInterceptor Report[ Tx Msg:1 messages Sent:0.00 MB (total) Sent:0.00 MB (application) Time:0.00 seconds Tx Speed:0.27 MB/sec (total) Tx Speed:0.27 MB/sec (application) Error Msg:0 Rx Msg:2 messages Rx Speed:0.01 MB/sec (since 1st msg) Received:0.00 MB] 26-Oct-2018 13:46:22.804 INFO [Membership-MemberAdded.] org.apache.catalina.ha.tcp.SimpleTcpCluster.memberAdded Replication member added:[org.apache.catalina.tribes.membership.MemberImpl[tcp://{127, 0, 0, 1}:5000,{127, 0, 0, 1},5000, alive=52140, securePort=-1, UDP Port=-1, id={70 116 -73 102 37 81 76 95 -93 64 -1 -63 92 -83 -44 -73 }, payload={}, command={}, domain={}]] 26-Oct-2018 13:46:27.012 INFO [GroupChannel-Heartbeat[Catalina-Channel]-1] org.apache.catalina.tribes.tipis.AbstractReplicatedMap.mapMemberAdded Map member added:[org.apache.catalina.tribes.membership.MemberImpl[tcp://{127, 0, 0, 1}:5000,{127, 0, 0, 1},5000, alive=56147, securePort=-1, UDP Port=-1, id={70 116 -73 102 37 81 76 95 -93 64 -1 -63 92 -83 -44 -73 }, payload={}, command={}, domain={}]]
- 下面4幅图分别为:
- 初次访问httpd:链接:http://192.168.113.151/test/index.jsp
- 二次访问httpd:链接:http://192.168.113.151/test/index.jsp
- 访问tomcat9:链接:http://192.168.113.151:8080/test/index.jsp
- 访问tomcat9-1:链接:http://192.168.113.151:8081/test/index.jsp
所有session id相同,session中的信息也相同(本次分配到tomcat0中了)。
- 本次分配给了tomcat1:
- 编辑tomcat9的server.xml配置文件:
- 本教程使用的是单主机多tomcat集群,不可进行多主机tomcat在session共享。
- 特别提醒:
使用httpd添加ssl时,需要在/etc/httpd/conf.d/ssl.conf文件中添加JkMount /* balancer:
否则使用http协议可进行负载均衡,而使用https不可进行负载均衡。<VirtualHost _default_:443> JkMount /* balancer
在CentOS 7 1804 中 安装 Apache HTTP Server 2.4 与 Apache Tomcat 9 集群
猜你喜欢
转载自blog.csdn.net/qq_32596527/article/details/83188624
今日推荐
周排行