linux平台下Tomcat的安装与优化

一.Tomcat介绍

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

二.安装Tomcat

安装前准备:
Tomcat运行需要依赖Java,所以安装Tomcat先安装JDK
先检查本机是否安装JDK

[root@server1 ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

可以看到我的Redhat已经安装了JDK
如果没有则需要安装
安装方法有两种
(1)yum安装
如果Linux没有配置yum源可以参考https://blog.csdn.net/lucky_ykcul/article/details/100877505配置yum源

[root@server1 ~]# yum install java

(2)rpm安装
先下载JDK

JDK下载地址:*
http://www.oracle.com/technetwork/java/javase/downloads/
Tomcat不同版本对应Java不同版本,大家可以根据需要下载需要的版本

tomcat下载地址:http://tomcat.apache.org
我的JDK是1.8的所以我下载了Tomcat8

安装Tomcat
tomcat下载地址
https://tomcat.apache.org/download-80.cgi

[root@server1 Downloads]# ls
apache-tomcat-8.5.46                        docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
apache-tomcat-8.5.46.tar.gz                 epel-release-7-11.noarch.rpm
container-selinux-2.107-1.el7_6.noarch.rpm  zabbix-server-mysql-3.2.0-1.el7.x86_64.rpm
container-selinux-2.74-1.el7.noarch.rpm
[root@server1 Downloads]# mv apache-tomcat-8.5.46 /usr/local/tomcat8

设置JAVA环境变量
先找一下Java位置

[root@server1 bin]# which java
/usr/bin/java
在/etc/profile中设置Java变量
[root@server1 bin]# vim /etc/profile  
JAVA_HOME="/usr/local/java" 
PATH=$PATH:$JAVA_HOME/bin:/usr/local/tomcat8/bin 
[root@tomcat1 ~]# source /etc/profile #使变量生效

5.启动Tomcat

 [root@server1 bin]# cd /usr/local/tomcat8/bin/
[root@server1 bin]# ls
bootstrap.jar       ciphers.bat                   configtest.bat  digest.sh         shutdown.sh      tomcat-native.tar.gz  version.sh
catalina.bat        ciphers.sh                    configtest.sh   setclasspath.bat  startup.bat      tool-wrapper.bat
catalina.sh         commons-daemon.jar            daemon.sh       setclasspath.sh   startup.sh       tool-wrapper.sh
catalina-tasks.xml  commons-daemon-native.tar.gz  digest.bat      shutdown.bat      tomcat-juli.jar  version.bat
[root@server1 bin]# sh startup.sh
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcatjuli.jar
Tomcat started.

看下是否有Tomcat进程

  [root@server1 bin]# ps -ef |grep java
root       4553      1  0 22:16 pts/0    00:00:03 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat8 -Dcatalina.home=/usr/local/tomcat8 -Djava.io.tmpdir=/usr/local/tomcat8/temp org.apache.catalina.startup.Bootstrap start
root       4782   2535  0 22:23 pts/0    00:00:00 grep --color=auto java

默认Tomcat运行在8080端口

[root@tomcat1 ~]# netstat -anpt |grep :8080

tcp 0 0 :::8080 :::* LISTEN 3318/java

6.关闭Tomcat

[root@tomcat1 ~]# /usr/local/tomcat7/bin/shutdown.sh

浏览器访问测试 http://IP:端口
在这里插入图片描述
7.修改Tomcat端口号

[root@tomcat1 ~]# vim /usr/local/tomcat8/conf/server.xml

修改端口:

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />

  
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

重新查看端口

[root@tomcat1 ~]# /usr/local/tomcat8/bin/startup.sh

[root@tomcat1 ~]# netstat -anpt | grep java

tcp 0 0 0.0.0.0:9005 0.0.0.0:* LISTEN 5625/java

tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 5625/java

tcp 0 0 0.0.0.0:9009 0.0.0.0:* LISTEN 5625/java

注意:关闭防火墙和selinux安全机制

 systemctl stop firewalld 临时关闭防火墙
    
 setenforce 0 关闭Selinux

三.Tomcat各端口含义及作用

8005端口

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />

tomcat监听的关闭端口
当执行shutdown.sh关闭tomcat就是链接8005端口执行SHUTDOWN命令

8080(8443)端口

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!-- A "Connector" using the shared thread pool-->

该port用于监听浏览器发送的请求,设置为80后可以直接使用http://localhost访问
其中redirectPort表示如果发送的是https请求,就将请求发送到8443端口

8009端口

 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Nginx、Apache等反向代理tomcat时就可以使用ajp协议反向代理到该端口。
虽然我们经常使用http反向代理到8080端口,但由于ajp建立tcp链接后一般长时间保持,从而减少Http反复进行tcp链接和断开的开销,所以反向代理中ajp是比http高效的。

四.Tomcat优化

1.内存优化

[root@tomcat1 conf]# vim catalina.sh
JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’

-Xms JVM初始化堆的大小
-Xmx JVM堆的最大值

重启Tomcat生效

2.线程优化
maxThreads=“X” 表示最多同时处理X个连接 minSpareThreads=“X” 初始化X个连接
maxSpareThreads=“X” 表示如果最多可以有X个线程,一旦超过X个,则会关闭不在需要的线程

3.避免root用户登录
创建普通用户,使用普通用户登录Tomcat,尽量避免使用root用户登录、操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值