【Tomcat】环境部署,多实例部署

tomcat (java容器 支持的Java应用程序)

免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。

Tomcat部署
官方网址 http://tomcat.apache.org
jdk地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

环境jdk部署,提供Java运行程序
Tomcat单机部署
Tomcat配置服务和自启动
Tomcat多实例部署
Tomcat问题处理

环境jdk部署,提供Java运行程序

[root@host1 ~]# rpm -ivh jdk-8u66-linux-x64.rpm

最小化没有这条命令,判断Java版本
[root@host1 ~]# java -version 

选择java版本
[root@host1 ~]# alternatives --config Java

或者配置java环境变量
[root@host1 ~]# vim /etc/profile
export JAVA_HOME=/usr/jave/jdk1.8.0_66
export PATH=$PATH:$JAVA_HOME/bin

读取配置变量信息
[root@host1 ~]# soure /etc/profile


Tomcat单机部署 (已经编译好的)

[root@host1 ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz
[root@host1 ~]# tar -xvf apache-tomcat-8.0.44.tar.gz
[root@host1 ~]# mv apache-tomcat-8.0.44 /usr/local/tomcat

启动tomcat
[root@host1 ~]# /usr/local/tomcat/bin/startup.sh 
注: ./catalina.sh start 和 ./startup.sh 都能启动tomcat。使用 ./catalina.sh stop 或 ./shutdown.sh 停止tomcat。

设置tomcat 开机自启动
[root@host1 ~]# vim /etc/rc.d/rc.local
/usr/local/tomcat/bin/startup.sh
[root@host1 ~]# chmod a+x /etc/rc.d/rc.local

注:服务器防火墙问题,8080端口被拦截了,于是需要打开8080端口,并保存重启防火墙:
[root@host1 ~]# iptables -I INPUT -p tcp --dport 8080 -j ACCEPT  
[root@host1 ~]# /etc/init.d/iptables  save
[root@host1 ~]# /etc/init.d/iptables  restart


[root@host1 ~]# ls /usr/local/tomcat/
bin/              #tomcat命令
conf/server.xml   #配置文件
conf/tomcat-users.xml  #管理界面需要的账号密码
logs/catalina.out      #日志
logs/localhost_access_log.日期.txt   #成功的访问记录日志
lib/           #tomcat的jar包
temp/          #临时文件
webapps/       #tomcat放置Java的应用程序的子目录,默认使用ROOT/index.jsp
work/          #解析Java产生的文件


指定访问内容(默认/ROOT/index.jsp)
[root@host1 ~]# vim conf/server.xml  
把appBase="/webapps"的位置改成"/tmp/webapps"

[root@host1 ~]# mkdir -p /tmp/webapps/ROOT/
[root@host1 ~]# cp index.jap /tmp/webapps/ROOT/


配置帐号密码权限(登陆使用Web管理界面)
[root@host1 ~]# vim conf/tomcat-users.xml
<role rolename="report"/>
<user username="report" password="reportxxx" roles="report"/>
注:username 和 password 则是登陆tomcat管理界面需要的账号密码。



Tomcat配置服务和自启动

[root@host1 ~]# vim /etc/init.d/tomcat
#!/bin/bash
 
CATALINA_HOME=/usr/local/tomcat
case $1 in
        start)
                sh $CATALINA_HOME/bin/startup.sh
                ;;
        stop)
                sh $CATALINA_HOME/bin/shutdown.sh
                ;;
        restart)
                sh $CATALINA_HOME/bin/shutdown.sh
                sh $CATALINA_HOME/bin/startup.sh
                ;;
        *)
                echo 'please use : tomcat {start | stop | restart}'
        ;;
esac

[root@host1 ~]# chmod +x /etc/init.d/tomcat
[root@host1 ~]# service tomcat start

Tomcat配置开机自启动
[root@localhost ~]# chkconfig --add tomcat
[root@localhost ~]# chkconfig tomcat on
查看tomcat的启动状态
[root@localhost ~]# chkconfig --list | grep tomcat
tomcat      0:off 1:off 2:on 3:on 4:on 5:on 6:off
关闭tomcat服务自启动:chkconfig tomcat off
删除tomcat服务在chkconfig上的管理:chkconfig --del tomcat


Tomcat多实例部署
tomcat 一般使用内存2G至4G ,并发处理能力弱(最多200个跟内存没关)
所有要多台,增加并发连接数,增加并发处理能力

部署多台Tomcat服务

添加另一台tomcat,修改端口,避免冲突
[root@host1 ~]# cp /usr/local/tomcat/ /usr/local/tomcat2
[root@host1 ~]# vim /usr/local/tomcat2/conf/server.xml             
Connector port="8080"     监听端口
redirectPort="8443"       加密端口  
Connector port="8009"     为apache打开的端口

两台Tomcat都访问同一index.jsp文件
[root@host1 ~]# vim /tomcat/conf/server.xml 
[root@host1 ~]# vim /tomcat2/conf/server.xml
把appBase="/webapps"的位置改成"/tmp/webapps"
[root@host1 ~]# mkdir -p /tmp/webapps/ROOT/

java 的外部页面语言jsp
[root@host1 ~]# vim /tmp/webapps/ROOT/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>你好</title>
	</head>

	<%for(int i=1;i<=3;i++){ %>
		<h<%=i%> align="center">欢迎访问jsp页面!</h<%=i%>>
	<%} %>

	<body>

	</body>
</html>


重启tomcat



Tomcat服务起多个实例,访问同一网页

[root@host1 ~]# mkdir -p /usr/local/tomcat/test_tomcat/test{1,2}/{conf,logs}
[root@host1 ~]# cp /usr/local/tomcat/conf/* /usr/local/tomcat/test_tomcat/test1/conf
[root@host1 ~]# cp /usr/local/tomcat/conf/* /usr/local/tomcat/test_tomcat/test2/conf

[root@host1 ~]# vim /usr/local/tomcat/test_tomcat/test1/conf/server.xml
server port="8081"
connector port="8081"
appbase="/tmp/webapps"
[root@host1 ~]# vim /usr/local/tomcat/test_tomcat/test2/conf/server.xml
server port="8082"
connector port="8082"
appbase="/tmp/webapps"

分别在对应实例目录下编写启动脚本
[root@host1 ~]# vim /usr/local/tomcat/test_tomcat/test1/test1.sh
[root@host1 ~]# vim /usr/local/tomcat/test_tomcat/test2/test2.sh
#!/bin/bash
#instacel script

export JAVA_OPTS='-Xms64m -Xmx128m'     #分配的内存范围
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat/test_tomcat/test1/

case $1 in
start)
$CATALINA_HOME/bin/startup.sh
;;
stop)
$CATALINA_HOME/bin/shutdown.sh
;;
restart)
$CATALINA_HOME/bin/shutdown.sh
sleep 3
$CATALINA_HOME/bin/startup.sh
;;
esac

[root@host1 ~]# chmod +x /usr/local/tomcat/test_tomcat/test1/test1.sh
[root@host1 ~]# chmod +x /usr/local/tomcat/test_tomcat/test2/test2.sh


Tomcat问题处理
问题1、tomcat访问很慢很慢,最后访问不了

解决:增大熵池
[root@host1 ~]# cp /usr/libsystemd/system/rngd.service /etc/systemd/system

[root@host1 ~]# vim /etc/systemd/system
ExecStart=/sbin/rngd -f -r /dev/urandom

[root@host1 ~]# systemctl daemon-reload
[root@host1 ~]# systemctl restart rngd

[root@host1 ~]# cat /proc/sys/kernel/random/entropy_avail
2979     #三千左右即可


问题2、一闪而退之端口占用,查看当天日志信息

扫描二维码关注公众号,回复: 9115028 查看本文章
[root@host1 ~]# cat /usr/local/tomcat/logs/catalina.out
在日志中可以看到类似这样的输出:
Address already in use: bind  ##说明是端口占用了


问题3、非端口问题的一闪而退

启动Tomcat直接一闪而退,在logs目录的日志里面找不到错误信息。
这个时候很大可能是因为Tomcat与JDK版本不对应导致的,有可能你的Tomcat是Tomcat9版,而你的JDK是1.7版本的


发布了11 篇原创文章 · 获赞 0 · 访问量 120

猜你喜欢

转载自blog.csdn.net/weixin_43658009/article/details/89072012