Tomcat下载.tar.gz在Linux上解压就可以用,不用像安装nginx那样,还需要编译,比较方便
一、配置catalina.sh文件
JAVA_OPTS="-Xms256M -Xmx256M -Xloggc:/mnt/tomcat/gclog/gc.$$.log"
export JAVA_HOME=/mnt/java/jdk1.8.0_251
export JRE_HOME=/mnt/java/jdk1.8.0_251/jre
JDK 1.8 的对 JVM 架构的改造将类元数据放到本地内存中,另外,将常量池和静态变量放到 Java 堆里。HotSopt VM 将会为类的元数据明确分配和释放本地内存。在这种架构下,类元信息就突破了原来 -XX:MaxPermSize 的限制,现在可以使用更多的本地内存。这样就从一定程度上解决了原来在运行时生成大量类的造成经常 Full GC 问题,如运行时使用反射、代理等。
如果服务器内存足够,升级到 JDK 1.8 修改 JVM 参数最简单的办法就是将 -XX:PermSize 和 -XX:MaxPermSize 参数替换为 -XX:MetaspaceSize 和 -XX:MaxMetaspaceSize
1.8中-XX:PermSize 和 -XX:MaxPermSize 已经失效,取而代之的是一个新的区域 —— Metaspace(元数据区)。
使用JDK1.8以及之后的版本,不会再碰上“java.lang.OutOfMemoryError: PermGen space”这个错误了。
其它常用参数:
https://blog.csdn.net/wilsonpeng3/article/details/70064336
https://lihuimintu.github.io/2019/02/19/gcLog/
二、配置 tomcat-users.xml
<user username="admin" password="admin" roles="manager-gui" />
<role rolename="manager-script"/>
<user username="jenkins" password="jenkins" roles="manager-script"/>
将上面的用户和角色信息,配置到 tomcat-users 节点内,admin是用来登陆的,jenkins是方便jenkins部署使用的
三、配置 context.xml
此文件在 webapps/manager/META-INF 目录下,注释下面这行代码,否则只能在本地登陆tomcat的管理页面,这是Tomcat8.5的限制,前面的版本,不用这样设置
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
四、配置 server.xml
一般来说这个文件是用来调优Tomcat的,比如使用线程池,修改端口什么的,我们这些都不改了,只把 ajp 协议禁止掉,用不上
<!-- Define an AJP 1.3 Connector on port 8009 -->
如果一台机器部署多个Tomcat那么需要修改以下三个地方的端口,当然有条件最好是一台机器一上Tomcat
4.1 <Server port="8006" shutdown="SHUTDOWN">
4.2 <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
4.3 <Define an AJP 1.3 Connector on port 8009>
五、加入开机启动
我们使用两个Tomcat节点,以t1 和 t2命名,进入systemctl的服务配置目录
cd /usr/lib/systemd/system
t1节点:
vi t1.service (注意复制下面的代码后,一定要把最后面的空行删除,否则在启动的时候可能会报错:Failed to start t1.service: Unit is not loaded properly: Bad message.)
[Unit]
Description=Tomcat T1节点
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=oneshot
ExecStart=/mnt/tomcat/t1/bin/startup.sh
ExecStop=/mnt/tomcat/t1/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
t2节点:
vi t2.service
[Unit]
Description=Tomcat T2节点
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=oneshot
ExecStart=/mnt/tomcat/t2/bin/startup.sh
ExecStop=/mnt/tomcat/t2/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
六、启动命令(请求 tomcat 服务名换成操作的服务名称)
systemctl enable tomcat #设置开机启动
systemctl disable tomcat #关闭开机自启
systemctl status tomcat #查看当前tomcat的状态:
systemctl stop tomcat #启动 tomcat:
systemctl stop tomcat #停止tomcat:
systemctl daemon-reload #更新服务的配置文件