tomcat部署(一)
Tomcat部署最佳实践
标签: linux
笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流
tomcat是玩web软件必会技能之一,今天我给大家介绍一下tomcat的部署,监控以及调优。
一、运行环境
[root@tomcat ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@tomcat ~]# uname -r
3.10.0-327.el7.x86_64
[root@tomcat ~]# getenforce
Disabled
[root@tomcat ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Mon 2017-04-24 06:49:46 CST; 1s ago
[root@tomcat ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 128M 3.4G 8.5M 143M 3.4G
Swap: 1.0G 0B 1.0G
[root@tomcat ~]# lscpu |egrep -w "(CPU\(s\):|Model name|cache)"
CPU(s): 2 #因为小猫比较吃资源,这里用的双核4G
Model name: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
二、准备
软件包目录:/application/tools
安装目录:/application/
tomcat,jdk版本如下,大家可以去我的云盘下载。链接:http://pan.baidu.com/s/1qYS8uGc 密码:97hp
[root@tomcat tools]# ls /application/tools/
apache-tomcat-8.0.27.tar.gz jdk-8u60-linux-x64.tar.gz
三、部署
1.部署java环境
[root@tomcat ~]# cd /application/tools/
[root@tomcat tools]# tar xf jdk-8u60-linux-x64.tar.gz -C /application/
[root@tomcat tools]# ln -s /application/jdk1.8.0_60 /application/jdk
source /etc/profile
java -version
[root@tomcat tools]# sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
[root@tomcat tools]# source /etc/profile
[root@tomcat tools]# java -version
2.安装tomcat
[root@tomcat tools]# tar xf apache-tomcat-8.0.27.tar.gz -C /application/
[root@tomcat tools]# ln -s /application/apache-tomcat-8.0.27 /application/tomcat
[root@tomcat tools]# echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
[root@tomcat tools]# source /etc/profile
[root@tomcat tools]# chown -R root.root /application/jdk/ /application/tomcat/
3.启动服务
[root@tomcat tomcat]# /application/tomcat/bin/startup.sh
4.查看日志
[root@tomcat logs]# tailf catalina.out
#如果有start Server startup in 592 ms表示启动成功
24-Apr-2017 19:46:29.229 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 592 ms
5.启动慢问题
在CentOS启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的。Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候回通过随机生成一个密钥,解决方法如下:
yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd # 启动服务
6.web界面说明
登录

管理界面
需要在配置文件添加如下内容


注意,这里只做测试用,如果在生产环境中会大大增加被入侵的风险,下面优化会讲到
7.虚拟目录


8.web管理界面
通常为了安全,会被这个功能关掉,或者使用VPN链接

Tomcat多实例
1.复制Tomcat目录
#注意之前的软链接
[root@tomcat ~]# cd /application/
[root@tomcat application]# cp -a apache-tomcat-8.0.32 tomcat8_1
[root@tomcat application]# cp -a apache-tomcat-8.0.32 tomcat8_2
2.修改配置文件
#创建多实例站点目录
[root@tomcat application]# mkdir -p /data/www/www/ROOT
#修改默认端口,管理端口,站点根目录
[root@tomcat tools]# sed -i '22s#8005#8011#;69s#8080#8081#;123s#appBase=".*"# appBase="/data/www/www"#' /application/tomcat8_1/conf/server.xml
[root@tomcat conf]# sed -i '22s#8005#8012#;69s#8080#8082#;123s#appBase=".*"# appBase="/data/www/www"#' /application/tomcat8_2/conf/server.xml
3.启动服务
[root@tomcat conf]# /application/tomcat8_1/bin/startup.sh
[root@tomcat conf]# /application/tomcat8_2/bin/startup.sh
[root@tomcat ~]# ss -lntp|grep java
LISTEN 0 100 :::8009 :::* users:(("java",pid=2819,fd=51))
LISTEN 0 1 ::ffff:127.0.0.1:8010 :::* users:(("java",pid=2819,fd=72))
LISTEN 0 1 ::ffff:127.0.0.1:8011 :::* users:(("java",pid=2855,fd=60))
LISTEN 0 1 ::ffff:127.0.0.1:8012 :::* users:(("java",pid=2886,fd=60))
LISTEN 0 100 :::8080 :::* users:(("java",pid=2819,fd=46))
LISTEN 0 100 :::8081 :::* users:(("java",pid=2855,fd=46))
LISTEN 0 100 :::8082 :::* users:(("java",pid=2886,fd=46))
说明:由于tomcat支持大并发能力有限,所有生产中不般不配虚拟主机,而使用多实例。一台机放四台,前面可使用nginx反向代理。
jpress部署实践
JPress,一个wordpress的java代替版本,使用JFinal开发。 需要maven支持。这里我也给大家提供了。下载后上传到/application/tools下执行下面的命令。链接:http://pan.baidu.com/s/1boMCXrD 密码:3wg4
cd /application/tools
tar xf apache-maven-3.3.9-bin.tar.gz -C /application/
ln -s /application/apache-maven-3.3.9 /application/maven
sed -i.ori2 '$a export MAVEN_HOME=/application/maven\nexport PATH="$MAVEN_HOME/bin:$PATH"' /etc/profile
source /etc/profile
把下载好的jpress-web-newest.war解压到/data/www/www/ROOT下
cd /data/www/www/ROOT
jar xf /application/tools/jpress-web-newest.war
创建数据库表
create database jpress;
grant all on jpress.* to jpress@'10.0.0.%' identified by '123456';
重启tomcat
for i in {1..2};do /application/tomcat8_$i/bin/shutdown.sh;done
for i in {1..2};do /application/tomcat8_$i/bin/startup.sh;done
现在浏览器就可以访问了,下面是我上传的两张图片

张耀的博客: http://www.zyops.com/java-tomcat
Tomcat监控:http://www.cnblogs.com/Csir/p/6758106.html
Tomcat调优:http://www.cnblogs.com/Csir/p/6758432.html
tomcat部署(一)的更多相关文章
- Tomcat部署web项目,如何直接通过域名访问,不加项目名称
问题:下面的问题是互联网上问得比较多的,但是显然都是同一个问题. JavaWeb项目部署到tomcat服务之后设置不需要输入项目名称即可访问? Tomcat部署web项目,如何直接通过域名访问,不加项 ...
- Tomcat部署web应用程序
对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[替换ROOT目录] 最简单的一种方法,webapps目录下面ROOT文件夹的文件为你的文件,然后输入localhost:8080/首页 ...
- 如何制定tomcat部署时自己定义的docBase路径
装了tomcat后发现tomcat安装在系统跟路径地下,每次部署的时候挺麻烦的,于是想指定一个自己定义的应用部署的路径: 以下是如何指定,相关文档请查看https://tomcat.apache.or ...
- Tomcat部署方式
tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/he ...
- Tomcat 部署
<CATALINA_HOME>/webapps: Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录. 1.war包部署: 将需要发布的web应用打成war文件, ( ...
- tomcat部署方法总结
可以参考之前的:http://www.cnblogs.com/youxin/archive/2013/01/18/2865814.html 在Tomcat中部署Java Web应用程序有两种方式:静态 ...
- 解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题
解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题 在web.xml中添加如 ...
- (转) Tomcat部署Web应用方法总结
原文:http://blog.csdn.net/yangxueyong/article/details/6130065 Tomcat部署Web应用方法总结 分类: Java web2011-01-11 ...
- Tomcat部署web应用的方式
对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[使用控制台部署] 访问Http://localhost:8080,并通过Tomcat Manager登录,进入部署界面即可. 2.[利 ...
- Tomcat部署Web应用方法总结
转载:http://m.blog.csdn.net/blog/u012516903/15741727 Tomcat部署Web应用方法总结 在Tomcat中部署Java Web应用程序有两种方式:静态部 ...
随机推荐
- 【Leetcode_easy】917. Reverse Only Letters
problem 917. Reverse Only Letters solution: class Solution { public: string reverseOnlyLetters(strin ...
- git 操作说明
第一步:代码提交到本地仓库 第二步:更新远程服务器代码到本地,如果有冲突需要优先解决,解决冲突后执行第一步操作 第三步:推送本地代码到远程服务器,可以使用source Tree 或者工具自带的配置gi ...
- 01点睛Spring4.1-依赖注入
转载:https://www.iteye.com/blog/wiselyman-2210252 1.1 声明bean 使用上例建立的testMavenSpring项目,将pom.xml文件中的 < ...
- Echart timeline 高级用法!!!!
一.前言 在使用 echart timeline 来着图形可视化时,我使用的和官网也不一样,因为我有使用映射关系.比如我将 no 映射到X轴,将 d4 映射到Y轴. 二.参考 echart官网:htt ...
- RestTemplate对象的使用
- C++拾忆
1.引用 1.建立引用的时候,必须初始化,引用一旦初始化,就和一个对象绑定,不能再修改为其他对象的引用 2.对引用取地址,和对原始对象取地址,是同一个地址 3.不能用做引用的:void.数组 2.内联 ...
- 原生js 实现better-scroll效果,饿了么菜单内容联动,即粘即用
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- AQS底层原理分析
J.U.C 简介 Java.util.concurrent 是在并发编程中比较常用的工具类,里面包含很多用来在并发场景中使用的组件.比如线程池.阻塞队列.计时器.同步器.并发集合等等.并发包的作者是大 ...
- Python05之常用操作符
主要有三类:算数运算符,比较运算符,逻辑运算符 一.算数运算符: 加(+)减(-)乘(*)除(/)幂运算(**)地板除(//)取余数(%) 注:/和//的区别: 数据1 / 数据2 = 数据3 ( ...
- 【Linux】一步一步学Linux——Linux版本(03)
目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat 4.3 Debi ...