tomcat8安装在公网IP为x.x.x.x的服务器上
tomcat安装
第一步,下载server-jre-8u202-linux-x64.tar.gz和apache-tomcat-8.5.95.tar.gz安装包。
登录地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html下载server-jre-8u202-linux-x64.tar.gz安装包。登录地址:https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.95/bin下载apache-tomcat-8.5.95.tar.gz安装包。然后使用WinSCP将安装包上传到/usr/local/src文件夹中。也可以使用wget命令下载。
命令:cd /usr/local/src
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.95/bin/apache-tomcat-8.5.95.tar.gz
第二步,解压server-jre-8u202-linux-x64.tar.gz和apache-tomcat-8.5.95.tar.gz安装包。
命令:cd /usr/local/src
tar -zxvf server-jre-8u202-linux-x64.tar.gz -C /usr/local
tar -zxvf apache-tomcat-8.5.95.tar.gz -C /usr/local
cd /usr/local
mv apache-tomcat-8.5.95 tomcat1
第三步,将/usr/local/jdk1.8.0_202和/usr/local/tomcat1的所有者及所属组改为tomcat。
命令:useradd tomcat
chown -R tomcat:tomcat /usr/local/jdk1.8.0_202
chown -R tomcat:tomcat /usr/local/tomcat1
第四步,配置环境变量。
配置/etc/profile文件,在文件添加下面的代码:
export JAVA_HOME=/usr/local/jdk1.8.0_202
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib/rt.jar:$JRE_HOME/lib/ext:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 刷新profile文件
命令:source /etc/profile
第五步,测试server-jre是否配置成功。
# 查看jdk版本
命令:java -version
若结果显示server-jre的版本,则说明server-jre配置成功。
tomcat配置及启动
第一步,编辑配置/usr/local/tomcat1中的server.xml文件。
进入文件夹/usr/local/tomcat1/conf,server.xml编辑完成后代码如下:
<?xml version="1.0" encoding="UTF-8"?>
...
<Server port="8105" shutdown="SHUTDOWN"> #port设置为8105
...
<Connector executor="tomcatThreadPool" port="8081" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"
maxPostSize="-1" maxHttpHeaderSize ="102400"/>
<!-- A "Connector" using the shared thread pool-->
...
</Server>
第二步,编辑配置/usr/local/tomcat1/bin下的 catalina.sh文件。
为防止出错,先提前备份一下,然后在第117行添加下面的代码:
JAVA_HOME=/usr/local/jdk1.8.0_202
JRE_HOME=/usr/local/jdk1.8.0_202/jre
JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m"
接着把UMASK="0027"修改为UMASK="0022"。
最后赋予权限。
命令:cd /usr/local/tomcat1/bin
chmod a+x catalina.sh
第三步,测试tomcat1是否配置成功。
命令:cd /usr/local/tomcat1/bin
./startup.sh
netstat -ntl | grep 8081
若结果成功显示“Tomcat started”,则说明tomcat成功启动。
若tomcat启动失败,则可能是启动时使用的端口被其他应用程序占用了,可以查看端口被哪个应用程序占用了。
命令:netstat -nap | grep [tomcat端口号]
或 lsof -i:[tomcat端口号]
或 netstat -ntl | grep [tomcat端口号]
tomcat成功启动后,然后直接根据http://x.x.x.x:8081
(http://x.x.x.x/index.jsp)在本地浏览器访问。
若页面成功显示“Apache Tomcat/8.5.95”,则说明tomcat配置成功。
若发现访问不到,则可以查看防火墙是否开着。
# 查看防火墙的状态
命令:systemctl status firewalld.service
# 临时将防火墙关闭
命令:systemctl stop firewalld.service
# 关闭tomcat
命令:./shutdown.sh
第四步,复制tomcat1文件夹1次并都粘贴在/usr/local/文件夹中。
cp -pr /usr/local/tomcat1 /usr/local/tomcat2
第五步,重复“tomcat配置及启动”中的第一、二和三步。
在配置文件server.xml中更改端口号,编辑配置 catalina.sh文件。
不进入tomcat根目录即可进行相应的操作
第一步,进入/etc/rc.d/init.d文件夹,新建文件,命名为tomcat1,并在文件中编写脚本。文件的脚本如下:
#!/bin/bash
#
# tomcat1 startup script for the Tomcat1 server
#
#
# chkconfig: 2345 80 20
# description: start the tomcat1 deamon
#
# Source function library
. /etc/rc.d/init.d/functions
prog=tomcat1
case "$1" in
start)
echo "Starting Tomcat1..."
/usr/local/tomcat1/bin/startup.sh
;;
stop)
echo "Stopping Tomcat1..."
/usr/local/tomcat1/bin/shutdown.sh
;;
res)
echo "Stopping Tomcat1..."
/usr/local/tomcat1/bin/shutdown.sh
sleep 60
echo "Starting Tomcat1..."
/usr/local/tomcat1/bin/startup.sh
;;
*)
echo "Usage: $prog {start|stop|res}"
;;
esac
exit 0
第二步,添加执行权限并设置开机自启。
命令:chmod +x /etc/init.d/tomcat*
# 设置开机自启
命令:chkconfig --add tomcat1
chkconfig tomcat1 on
# 检查tomcat1命令
命令:service tomcat1
Usage: tomcat1 {start|stop|res}
第三步,检查一下脚本是否有用。
命令:/sbin/chkconfig tomcat1 on
sudo /sbin/chkconfig --list tomcat1
如果结果显示“tomcat1 0:off 1:off 2:on 3:on 4:on 5:on 6:off”,则说明脚本文件有用。
第四步,nginx启动、关闭以及重启命令。
命令:service tomcat1 start
service tomcat1 stop
service tomcat1 restart
第五步,再新建1个文件,命名为tomcat2,重复执行第一、二、三和四步。
tomcat配置私人共享
第一步,配置/etc/nginx/nginx.conf文件。
#keepalive_timeout 0;
keepalive_timeout 65;
upstream mytomcat {
server x1.x1.x1.x1:8081 weight=1;
server x1.x1.x1.x1:8082 weight=1;
}
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://mytomcat;
}
}
第二步,分别编辑配置/usr/local/tomcat1/server.xml和/usr/local/tomcat2/server.xml文件。
分别进入文件夹/usr/local/tomcat1/conf和/usr/local/tomcat2/conf,server.xml编辑完成后代码如下:
<?xml version="1.0" encoding="UTF-8"?>
...
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<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="x1.x1.x1.x1"
port="4000"
autoBind="100"
selectorTimeout="5000"
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"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
...
</Server>
第三步,进入/usr/local/tomcat1/conf/Catalina/localhost和/usr/local/tomcat2/conf/Catalina/localhost文件夹,分别创建manager.xml文件。
命令:vim /usr/local/tomcat1/conf/Catalina/localhost/manager.xml
vim /usr/local/tomcat2/conf/Catalina/localhost/manager.xml
将下面的代码复制到manager.xml文件中:
<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
第四步,进入/usr/local/tomcat1/webapps/manager/WEB-INF和/usr/local/tomcat1/webapps/manager/WEB-INF,分别在web.xml文件中加入下面的标签。
<distributable/>
</web-app>
第五步,重启服务器,然后查看tomcat是否启动。
命令:reboot
或 shutdown -r now
或 shutdown -r 10
或 init 6
# 查看tomcat是否启动
命令:netstat -nap | grep [tomcat端口号]
或 lsof -i:[tomcat端口号]
或 netstat -ntl | grep [tomcat端口号]
第六步,进入/usr/local/tomcat1/webapps/manager和/usr/local/tomcat2/webapps/manager,分别创建session.jsp文件。
命令:vim /usr/local/tomcat1/webapps/manager/session.jsp
将下面的代码复制到session.jsp文件中:
<h1>18080</h1>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<BR>
SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<BR>
vim /usr/local/tomcat2/webapps/manager/session.jsp
将下面的代码复制到session.jsp文件中:
<h1>28080</h1>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<BR>
SessionID:<%=session.getId()%>
<BR>
SessionIP:<%=request.getServerName()%>
<BR>
SessionPort:<%=request.getServerPort()%>
<BR>
最后直接在本地浏览器访问配置的nginx ip地址+项目名+页面名,即http://x.x.x.x/manager/session.jsp,就可以查看两个session域是否共享,即SessionID是否一样。