Linux软件 Tomcat安装调优

Posted by Xavier Blog on January 20, 2024

“Yeah It’s on. ”

linux软件-tomcat安装调优

部署环境:

MySQL-Connector-Java: mysql-connector-java-5.1.47

Tomcat: apache-tomcat-8.5.42

JDK: jdk-8u171-linux-x64

MySQL: mysql-5.7.26

一、安装JDK

1、卸载openjdk

安装之前需要查看下系统是否安装了openjdk,如果安装了openjdk,请先卸载,否则安装不了oracle官方的jdk

1
yum remove java-* -y

2、下载(或上传)所需安装包

3、解压JDK

1
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
1
ln -s /usr/local/jdk1.8.0_171 /usr/local/jdk

4、配置JDK环境变量

1
2
3
4
5
6
7
8
9
vim /etc/profile #在文件最后加入一下行

 JAVA_HOME=/usr/local/jdk

 PATH=$JAVA_HOME/bin:$PATH

 CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

 export PATH JAVA_HOME CLASSPATH
1
source /etc/profile #重载环境变量

5、查看java环境变量

1
java -version

二、安装Tomcat

1、解压软件包

1
 tar -zxvf apache-tomcat-8.5.42.tar.gz -C /usr/local/

2、做连接

1
ln -s /usr/local/apache-tomcat-8.5.42 /usr/local/tomcat

3、Tomcat个目录文件用途

—bin:存放启动和关闭tomcat执行脚本;
—conf :存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml;
—lib: 存放Tomcat运行需要的库文件(jar),包含Tomcat使用的jar文件。unix平台此目录下的任何文件都被加到Tomcat的classpath中;
—logs:存放Tomcat执行时的LOG文件;
—webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录,即供外界访问的web资源的存放目录;
— webapps/ROOT:tomcat的家目录
— webapps/ROOT/ index.jsp:Tomcat的默认首页文件
—work:存放jsp编译后产生的class文件或servlet文件存放
—temp:存放Tomcat运行时所产生的临时文件

4、Tomcat启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
vim /etc/init.d/tomcat


#!/bin/bash
# Tomcat init script for Linux
# chkconfig: 2345 96 14
# discription: The Apache Tomcat Server/JSP container
JAVA_HOME=/usr/local/jdk/
CATALINA_HOME=/usr/local/tomcat
start_tomcat=$CATALINA_HOME/bin/startup.sh       #tomcat启动文件
stop_tomcat=$CATALINA_HOME/bin/shutdown.sh     #tomcat关闭文件

start() {
        echo -n "Starting tomcat: "
        ${start_tomcat}
        echo "tomcat start ok."
}
stop() {
        echo -n "Shutting down tomcat: "
        ${stop_tomcat}
        echo "tomcat stop ok."
}

# See how we were called

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        sleep 5
        start
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
esac
exit 0



chmod +x /etc/init.d/tomcat  #添加执行权限

5、建立系统服务文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vim /lib/systemd/system/tomcat.service

[Unit]
Description=tomcat
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/jdk1.8.0_171/
Environment=CATALINA_HOME=/usr/local/tomcat
ExecStart=/etc/init.d/tomcat start
ExecStop=/etc/init.d/tomcat stop
ExecRestart=/etc/init.d/tomcat restart
PrivateTmp=true

[Install]
WantedBy=multi-user.target



systemctl daemon-reload  #重载service文件

6、启动并测试访问

1
systemctl start tomcat

浏览器访问 http://192.168.171.155:8080/

7、点击Server Status

拒绝访问,因为这个页面需要我们配置一个账号密码,来访问。

注:如果你需要查看 Tomcat 的运行状态可以配置tomcat管理员账户,然后登陆 Tomcat 后台进行查看。

1)修改tomcat-users.xml配置文件

1
vim /usr/local/tomcat/conf/tomcat-users.xml

<tomcat-users> </tomcat-users>标签内添加

1
2
3
4
5
6
7
<role rolename="admin-gui"/>
 <role rolename="admin-script"/>
 <role rolename="manager-gui"/>
 <role rolename="manager-script"/>
 <role rolename="manager-jmx"/>
 <role rolename="manager-status"/>
 <user username="admin" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

角色说明:

1:“manager-gui”:Allows access to the html interface(允许通过web的方式登录查看服务器信息)。

2:“manager-script”: Allows access to the plain text interface(允许以纯文本的方式访问)。

3:“manager-jmx”: Allows access to the JMX proxy interface(允许jmx的代理访问)。

4:“manager-status”: Allows access to the read-only status pages(允许以只读状态访问)。

5: admin-gui: 允许访问HTML GUI

6 : admin-script: 允许访问文本接口

2)tomcat8以上还要增加以下配置

1
2
3
4
5
6
vim /usr/local/tomcat/conf/Catalina/localhost/manager.xml

<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
1
2
vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
#修改红框位置

3)重启tomcat,测试连接

我们注意到当前配置的jvm大小非常小,那么接下来,调大jvm

1
2
3
vim /usr/local/tomcat/bin/catalina.sh
#在最前面(注释除外)添加
JAVA_OPTS='-Xms512m -Xmx1024m'

-Xms:表示java虚拟机堆内存初始内存分配的大小,虚拟机在启动时向系统申请的内存的大小,-Xmx表示最大可分配给jvm的内存大小,根据自己需要修改。一般建议堆的最大值设置为可用内存的最大值的80%。

三、搭建基于域名的虚拟主机

1
 ls /usr/local/tomcat/conf/

server.xml是Tomcat的主配置文件(全局),服务器设置的,例如端口设置,路径设置。

1、修改server.xml配置文件

1
 vim /usr/local/tomcat/conf/server.xml

在末尾</Engine>上面添加内容

1
2
3
4
5
6
 <Host name="www.test.com"  appBase="/www/html">
         <Context path="" docBase="/www/html/web1" />
      </Host>
      <Host name="map.test.com"  appBase="/www/html">
         <Context path="" docBase="/www/html/web2" />
      </Host>

(此处省略DNS解析过程)

参数说明:

  • name指定虚拟主机的名称,那么使用对应的ip将无法访问,如果需要使用 ip 来访问,需要把 host 的name属性改成ip即可。
  • appBase指定应用程序(网站)的根目录,这里可以存放多个程序(网站),一般是相对路径,相对于tomcat的安装目录。
  • Context path=”“为虚拟目录,如果是空,表示直接就是/,如果是如path=”aa”,那么访问的时候就是site:8080/aa
  • docBase=”……” 为实际目录,可以是绝对路径,如果是相对路径就是基于appBase

2、创建测试网页

1
2
3
mkdir -p /www/html/{web1,web2}
echo "web1" > /www/html/web1/index.html
echo "web2" > /www/html/web2/index.html

再次提醒 此处省略DNS解析配置

3、重启tomcat测试连接

1
systemctl restart tomcat

测试成功!!!

四、安装tomcat-Native

Tomcat 可以使用 apr 来提供更好的伸缩性、性能和集成到本地服务器技术。用来提高 tomcat 的性能。 tomcat native 在具体的运行平台上,提供了一种优化技术,它本身是基于 ARP(Apache Portable(轻便) Runtime)技术,我们应用了 tomcat native 技术之后,tomcat 在跟操作系统级别的交互方面可以做得更好,并且它更像apache 一样,可以更好地作为一台 web server。 tomcat 可以利用 apache 的 apr 接口,使用操作系统的部分本地操作,从而提升性能APR 提升的是静态页面处理能力.

Tomcat8.5 在bin下已有tomcat-native.tar.gz,我们不需要去下载

一、安装依赖

1
yum install -y apr apr-devel gcc gcc-c++ openssl-devel openssl

1、解压压缩包

1
2
cd /usr/local/tomcat/bin/
tar zxf tomcat-native.tar.gz -C /usr/local/src/

2、预编译

1
2
3
cd /usr/local/src/tomcat-native-1.2.21-src/native/

./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/local/jdk1.8.0_171/ --with-ssl

3、编译安装

1
make && make install

4、添加库文件

1
vim /etc/ld.so.conf

5、使配置文件生效

1
2
3
4
5
6
7
8
 ldconfig
 
 echo "ldconfig" >>/etc/rc.local  #添加开机生效
 
 chmod +x /etc/rc.d/rc.local
 
  # 其实添加完ldconfig并无法立即引用类库变量,我们可以做软连接解决:
  ln -s /usr/local/apr/lib/*  /usr/lib/

6、重启tomcat

1
systemctl restart tomcat

7、看日志是否支持native

1
 cat /usr/local/tomcat/logs/catalina.out | grep Native