Tomcat部署与使用 Tomcat简介 tomcat软件版本选择 部署java和tomcat tomcat 管理功能 自定义url规则(nginx location) 搭建Jpress tomcat启动过慢

    Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,tomcat是jave2ee的不完整实现。在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器。目前Tomcat最新版本为9.0。Java容器还有resin、weblogic等。

tomcat:JWS(sun)+Jserv(ASF)

java:

tomcat软件版本选择

生产环境版本和开发协商

tomcat和jdk版本要并行 tomcat8 -- jdk 8

安装JDK(以后所有涉及到java应用都需要安装)tomcat

部署java和tomcat

jdk下载

    JDK是 Java 语言的软件开发工具包,我们使用其中一个工具 JVM (java 虚拟机)

  1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Tomcat下载

  1. http://tomcat.apache.org/

部署java环境

  1. mkdir -p /application/tools
  2. cd /application/tools
  3. tar xf jdk-8u60-linux-x64.tar.gz -C /application/
  4. ln -s /application/jdk1.8.0_60 /application/jdk
  5. sed -i.ori '$a export JAVA_HOME=/application/jdk export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
  6. source /etc/profile
  7. [root@tomcat tools]# java -version
  8. java version "1.8.0_60"
  9. Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
  10. Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

安装tomcat

  1. tar xf apache-tomcat-8.0.27.tar.gz -C /application/
  2. ln -s /application/apache-tomcat-8.0.27 /application/tomcat
  3. echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
  4. source /etc/profile
  5. chown -R root.root /application/jdk/ /application/tomcat/
  6. /application/tomcat/bin/version.sh 显示版本信息

tomcat的目录结构

[root@web03 tools]# cd /application/tomcat/

[root@web03 tomcat]# tree -L 1

.

├── bin startup.sh shutdown.sh catalina.sh(核心)

├── conf server.xml(主配置文件) tomcat-users.xml

├── lib

├── LICENSE

├── logs 日志目录 catalina.out tomcat实时日志

├── NOTICE

├── RELEASE-NOTES

├── RUNNING.txt

├── temp

├── webapps 站点目录

└── work

配置文件conf

  • server.xml主配置文件
  • context.xml每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INFO目录中,用于定义会话管理器、JDBC等:confi/context.xml是为各webapp提供默认配置
  • web.xml每个webapp部署之后才能被访问;此文件则用于为所有的webapp提供默认部署相关的配置
  • tomcat-users.xml用户认证的账号和密码配置文件
  • catalina.policy当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略
  • catalina.propertiesJava属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数
  • logging.properties日志相关的配置信息

webapps网站目录

  1. [root@tomcat tomcat]# cd webapps/
  2. [root@tomcat webapps]# ll
  3. total 20
  4. drwxr-xr-x 14 root root 4096 Oct 5 12:09 docs #→tomcat帮助文档
  5. drwxr-xr-x 6 root root 4096 Oct 5 12:09 examples #→web应用实例
  6. drwxr-xr-x 5 root root 4096 Oct 5 12:09 host-manager #→管理
  7. drwxr-xr-x 5 root root 4096 Oct 5 12:09 manager #→管理
  8. drwxr-xr-x 3 root root 4096 Oct 5 12:09 ROOT #→默认网站根目录

启动Tomcat

#→启动程序/application/tomcat/bin/startup.sh

  1. [root@tomcat ~]# /application/tomcat/bin/startup.sh
  2. Using CATALINA_BASE: /application/tomcat
  3. Using CATALINA_HOME: /application/tomcat
  4. Using CATALINA_TMPDIR: /application/tomcat/temp
  5. Using JRE_HOME: /application/jdk
  6. Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
  7. Tomcat started.

#→关闭程序/application/tomcat/bin/shutdown.sh

查看java是否运行

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

查看查看tomcat有没有运行

10.0.0.17:8080

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

tomcat 管理功能

进入tomcat页面点击management app 会弹出密码框 默认是没有密码需要自己添加 需要配置管理用户 即配置tomcat-users.xml

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

  1. [root@tomcat ~]# vim /application/tomcat/conf/tomcat-users.xml
  2. …………
  3. <role rolename="manager-gui"/>
  4. <role rolename="admin-gui"/>
  5. <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
  6. </tomcat-users> #→在此行前加入上面三行
  7. [root@tomcat ~]# /application/tomcat/bin/shutdown.sh
  8. [root@tomcat ~]# /application/tomcat/bin/startup.sh

重启tomcat

  1. /application/tomcat/bin/shutdown.sh
  2. /application/tomcat/bin/startup.sh

就可以进入management app

management使用

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

代码直接上线

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

上传war文件自动解压

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

就可以直接访问了

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

查看目录文件

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

host manager使用

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat主配置

  1. vim /application/tomcat/conf/server.xml
  2.    <Server port="8005" shutdown="SHUTDOWN"> java端口
  3.     <Connector port="8080" protocol="HTTP/1.1" tomcat端口
  4.                connectionTimeout="20000"
  5.                redirectPort="8443" />
  6.     <!--<Connector port="8009" protocol="AJP/1.3" java端口 redirectPort="8443" />-->

自定义url规则(nginx location)

备份配置文件

  1. cp /application/tomcat/conf/server.xml{,.ori}

修改配置文件。

这个url的修改跟nginx location类似

  1. nginx location
  2. root html
  3. location /
  4. location /obbba/
  5. {
  6.   root /data/olbba/
  7. }

在125行下添加下面代码

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

  1. vim /application/tomcat/conf/server.xml
  2. # nginx server root html;
  3.       <Host name="localhost" appBase="webapps"
  4.             unpackWARs="true" autoDeploy="true">
  5.       <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
  6.       <Context path="/40team" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>

<Context path="" docBase="/application/tomcat/webapps/memtest" debug="0"

reloadable="false" crossContext="true"/>

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Context === location

path="" === /obbba/路径默认 docBase="/application/tomcat/webapps/memtest 指向访问目录

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

搭建Jpress

类似wordpess博客站点

环境:Linux Tomcat JDK MySQL(Mariadb)

安装mariadb-server

  1. yum -y install mariadb-server
  2. systemctl start mariadb.service
  3. mysql
  4. create database jpress DEFAULT CHARACTER SET utf8;
  5. grant all on jpress.* to jpress@'localhost' identified by '123456';

    下载jpress

https://github.com/JpressProjects/jpress

上传到 /application/tomcat/webapps目录 tomcat会自动解压

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

访问页面开始安装

http://10.0.0.17:8080/jpress-web-newest/

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

Tomcat部署与使用
Tomcat简介
tomcat软件版本选择
部署java和tomcat
tomcat 管理功能
自定义url规则(nginx location)
搭建Jpress
tomcat启动过慢

tomcat启动过慢

现象

在CentOS7启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的。Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥。

  1. 22-Apr-2017 19:33:07.623 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of
  2.  SecureRandom instance for session ID generation using [SHA1PRNG] took [55,507] milliseconds.
  3. 22-Apr-2017 19:33:07.653 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web appli
  4. cation directory /application/apache-tomcat-8.0.27/webapps/ROOT has finished in 55,935 ms

主要原因是生成随机数的时候卡住了,导致tomcat启动不了。

是否有足够的熵来用于产生随机数,可以通过如下命令来查看

  1. [root@oldboy tools]# cat /proc/sys/kernel/random/entropy_avail
  2. 7

为了加速/dev/random提供随机数的速度,你可以通过操作设备的外设,让其产生大量的中断(如网络传输数据,按键,移动鼠标,在命令行敲几个不同的命令,俗称聚气。

cat /dev/random 会消耗能量

方法1:

vim $JAVA_HOME/jre/lib/security/java.security

securerandom.source=file:/dev/random

改为

securerandom.source=file:/dev/urandom

方法2:

vim $TOMCAT_HOME/bin/catalina.sh

if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then

JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"

fi

这个系统属性egd表示熵收集守护进程(entropy gathering daemon)

方法3:(推荐)

yum install rng-tools # 安装rngd服务(熵服务,增大熵池)

systemctl start rngd # 启动服务

给新手建议:在虚拟机内,AMDCPU不支持第三种方法!