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版本的