常用软件安装及使用目录

资料链接:https://pan.baidu.com/s/1XOUlneFqt-_1tOLSmc-E1g     网盘分享的文件在此

1. Tomcat简介

Tomcat是一个web服务器

web服务器:httpd,nginx

web 处理静态文件:html css、js、jpg,png

Tomcat 处理 html文件

php软件解析php文件

jdk处理jsp文件

tomcat+JDK

JDK java开发者工具包

java 写一次,处处使用

jdk  java虚拟机

跨平台

2. tomcat软件版本选择

生产环境版本和开发协商

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

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

环境 :hostname web03   ip 10.0.0.17/172.16.1.17

mkdir -p /application/tools/

tar xf jdk-8u60-linux-x64.tar.gz -C /application/
ln -s /application/jdk1..0_60 /application/jdk sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile /etc/profile
source /etc/profile
java -version

4. 安装tomcat

tar xf apache-tomcat-8.0..tar.gz -C /application/
ln -s /application/apache-tomcat-8.0. /application/tomcat
echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
source /etc/profile
chown -R root.root /application/jdk/ /application/tomcat/
/application/tomcat/bin/version.sh

5. tomcat的目录结构

[root@web03 tools]# cd /application/tomcat/
[root@web03 tomcat]# tree -L
.
├── 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
directories, files
. 启动关闭tomcat
/application/tomcat/bin/startup.sh
/application/tomcat/bin/shutdown.sh
netstat -tunlp|grep java

访问http://10.0.0.17:8080/

冒号中文无法显示

6、遇到tomcat启动慢的问题:

1.现象

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

22-Apr-2017 19:33:07.623 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of

SecureRandom instance for session ID generation using [SHA1PRNG] took [55,507] milliseconds.

22-Apr-2017 19:33:07.653 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web appli

cation directory /application/apache-tomcat-8.0.27/webapps/ROOT has finished in 55,935 ms

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

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

[root@oldboy tools]# cat /proc/sys/kernel/random/entropy_avail

为了加速/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  # 启动服务

7. tomcat 管理功能

vim /application/tomcat/conf/tomcat-users.xml
[root@web03 webapps]# tail - /application/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
</tomcat-users>
/application/tomcat/bin/shutdown.sh
/application/tomcat/bin/startup.sh

从管理网页可以上传war包,因为是root用户,别人可以上传木马病毒,所以不安全,不建议生产环境使用web界面,不建议公网访问web界面,不安全。测试环境可以给开发使用,省事

http://10.0.0.17:8080/memtest/meminfo.jsp

8.Tomcat主配置文件

vim /application/tomcat/conf/server.xml
#三个端口
<Server port="" shutdown="SHUTDOWN">
#将shutdown 传给8005会直接停掉tomcat,不安全,可以改掉SHUTDOWN这个默认口令
#echo shutdown|nc 10.0.0.17
<Connector port="" protocol="HTTP/1.1"
connectionTimeout=""
redirectPort="" /> <!--<Connector port="" protocol="AJP/1.3" redirectPort="" />-->

9. 自定义url规则(nginx location)

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

vim /application/tomcat/conf/server.xml +

<Context path="" docBase="/application/tomcat/webapps/memtest" debug="" reloadable="false" crossContext="true"/>

<Context path="/40team" docBase="/application/tomcat/webapps/memtest" debug="" reloadable="false" crossContext="true"/>

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

访问并测试:http://10.0.0.17:8080/meminfo.jsp

http://10.0.0.17:8080/

http://10.0.0.17:8080/40team/meminfo.jsp

# 相当于nginx server root html;

=============

nginx  location

root html

location   /

location  /oldboy/

{

root /data/oldboy/

}

=====

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

<Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>

<Context path="/40team" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>

1应该是虚拟主机 ,2是默认站点目录,不建议直接修改站点目录,想让服务器访问指定目录可以用类似nginx的location的功能,即如下。3,4是war包在站点目录下自动解压的配置   5是相当于locationp匹配/,后面6是相当于 root  html; 即是访问的目录。7是访问这个目录时自动定位到目录8去,由此可以知道,访问的目录并不一定是真实存在的,有可能是重定位的,这样一来,站点目录结构的安全性能够得到加强,

比较差别:

diff /application/tomcat/conf/server.xml{,.ori}

10. 搭建Jpress

类似wordpess博客站点

环境:Linux Tomcat JDK MySQL(Mariadb)

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

上传jpress的war到站点目录/application/tomcat/webapps  下,由于tomcat主配置文件设置,他会自动解压war包,当然只要解压包目录还在,内容无论有没有,它就不会重新解压

访问目录 http://10.0.0.17:8080/jpress-web-newest/

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

首页:  http://10.0.0.17:8080/jpress-web-newest/
管理页:  http://10.0.0.17:8080/jpress-web-newest/admin

jpress 有bug,要先启数据库,不然tomcat的日志会在开机时一直报错,然后过一段时间磁盘空间全被填满

mv jpress-web-newest/* /tmp/jpress

11.参考资料

JAVA企业级应用TOMCAT实战   http://blog.oldboyedu.com/java-tomcat/

原文链接:http://www.zyops.com/java-tomcat

1. Tomcat多实例

多虚拟主机:nginx 多个Server标签(域名,ip,端口)  进程数量固定 master+worker

多实例(多进程):同一个程序启动多次,分为两种情况:第一种:一台机器跑多个站点;第二种:一个机器跑一个站点多个实例,配合负载均衡

cd /application/tools/
tar xf apache-tomcat-8.0..tar.gz
cp -a apache-tomcat-8.0. tomcat8_1
cp -a apache-tomcat-8.0. tomcat8_2
sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml
diff tomcat8_1/conf/server.xml tomcat8_2/conf/server.xml

# 将多实例tomcat模板打包备用

tar zcf muti_tomcat8.tar.gz ./tomcat8_1 ./tomcat8_2
cp -a tomcat8_1 tomcat8_2 /application/ /application/tomcat8_1/bin/startup.sh
/application/tomcat8_2/bin/startup.sh netstat -tunlp|grep java

# 将每个实例的网页差异化

echo  >>/application/tomcat8_1/webapps/ROOT/index.jsp
echo >>/application/tomcat8_2/webapps/ROOT/index.jsp

2. Tomcat反向代理集群

nginx反向代理:LNMP机器  tomcat

Nginx + LNMP机器

upstream server_pools{
server 10.0.0.7:;
server 10.0.0.8:;
}

server {

……

location /{

……

proxy_pass http://server_pools;

}

}

Nginx + Tomcat

upstream server_pools{

server 10.0.0.17:8081;

server 10.0.0.17:8082;

server 10.0.0.18:8081;

server 10.0.0.18:8082;

}

server {

……

location /{

……

proxy_pass http://server_pools;

}

}

CentOS6 CentOS7 融合

# 在CentOS6的lb01操作

mv /application/nginx/conf/nginx.conf{,.ori}
egrep -v '#|^$' /application/nginx/conf/nginx.conf.default > /application/nginx/conf/nginx.conf

[root@lb01 ~]# cat /application/nginx/conf/nginx.conf
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ; upstream web_pools {
server 10.0.0.17:;
server 10.0.0.17:;
}
server {
listen ;
server_name localhost;
location / {
root html;
index index.jsp index.html index.htm;
proxy_pass http://web_pools;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
}

3. Tomcat监控

jps -lvm

排除tomcat故障步骤:

a. 查看catalina.out

b. sh show-busy-java-threads.sh       ============

远程监控tomcat

windows软件监控            先安装Java C:\Program Files\Java\jdk1.8.0_31\bin

zabbix 监控

3.1 让tomcat开启远程监控功能

vim /application/tomcat8_1/bin/catalina.sh +

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.0.0.17" echo "10.0.0.17 web03" >>/etc/hosts /application/tomcat8_1/bin/shutdown.sh
/application/tomcat8_1/bin/startup.sh
netstat -tunlp|grep

右击

3.2 zabbix监控tomcat

3.2.1 zabbix Server 需要开启java监控功能(做1次)

sed -i -e '220a JavaGateway=127.0.0.1' -e '236a StartJavaPollers=5' /etc/zabbix/zabbix_server.conf

systemctl restart zabbix-server.service

sed -e 可以执行多条命令,而a后面不能用;会被当成字符加进去的

zabbix c ,tomcat java ,javagateway 翻译官

3.2.2 安装zabbix_java_gateway(java程序),也需要jdk(openjdk)  (做1次)

yum  install zabbix-java-gateway
systemctl start zabbix-java-gateway.service
netstat -tunlp|grep java

需要有zabbix的安装源的

3.2.3 tomcat需要开启远程监控功能  (每一个实例都要做)

4. Tomcat优化

4.1 安全优化

关闭端口保护     8005  SHUTDOWN

ajp连接端口保护  8009 注释

禁用管理端     ###将webapps下的内容全移走,再建一个ROOT目录

降权启动  降低用户权限启动

[root@web03 ~]# pkill java
[root@web03 ~]# useradd tomcat
[root@web03 ~]# cp -a /application/tools/tomcat8_1 /home/tomcat/
[root@web03 ~]# chown -R tomcat.tomcat /home/tomcat/tomcat8_1/
[root@web03 ~]# su -c '/home/tomcat/tomcat8_1/bin/startup.sh' tomcat
Using CATALINA_BASE: /home/tomcat/tomcat8_1
Using CATALINA_HOME: /home/tomcat/tomcat8_1
Using CATALINA_TMPDIR: /home/tomcat/tomcat8_1/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /home/tomcat/tomcat8_1/bin/bootstrap.jar:/home/tomcat/tomcat8_1/bin/tomcat-juli.jar
Tomcat started.
[root@web03 ~]# ps -ef|grep tomcat

4.2 性能优化   ###瓶颈主要不在cpu,而是内存

tomcat性能取决于你的内存大小

上策:优化代码

中策:jvm优化机制  垃圾回收机制 把不需要的内存回收

优化jvm--优化垃圾回收策略

优化catalina.sh配置文件。在catalina.sh配置文件中添加以下代码:

#tomcat分配1G内存模板

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m"

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms800m -Xmx800m -XX:NewSize=400m -XX:MaxNewSize=400m -XX:PermSize=400m -XX:MaxPermSize=400m"

下策:加足够大的内存

下下策:每天0点定时重启tomcat

vim /home/tomcat/tomcat8_1/bin/catalina.sh +
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms800m -Xmx800m -XX:NewSize=400m -XX:MaxNewSize=400m -XX:PermSize=400m -XX:MaxPermSize=400m"
su -c '/home/tomcat/tomcat8_1/bin/shutdown.sh' tomcat
su -c '/home/tomcat/tomcat8_1/bin/startup.sh' tomcat

tomcat安装及使用详解的更多相关文章

  1. Tomcat安装及配置详解

    Tomcat安装及配置详解   一,Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Found ...

  2. tomcat安装配置常见问题详解

    历经波折,终于把tomcat装好了.记录下过程供自己和后来的初学者参考吧! 本文先后介绍了tomcat的下载安装方法.安装和启动不成功的常见原因 以及启动tomcat后如何配置上下文. 一.下载安装 ...

  3. Apache + Tomcat集群配置详解 (1)

    一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...

  4. Tomcat配置(二):tomcat配置文件server.xml详解和部署简介

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  5. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...

  6. Linux中Nginx安装与配置详解

    转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...

  7. Nginx + Tomcat 负载均衡配置详解

    Nginx常用操作指南一.Nginx 与 Tomcat 安装.配置及优化1. 检查和安装依赖项 yum -y install gcc pcre pcre-devel zlib zlib-devel o ...

  8. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  9. zookeeper的安装(图文详解。。。来点击哦!)

    zookeeper的安装(图文详解...来点击哦!) 一.服务器的配置 三台服务器: 192.168.83.133   sunshine 192.168.83.134   sunshineMin 19 ...

随机推荐

  1. leetcode 217. Contains Duplicate 287. Find the Duplicate Number 442. Find All Duplicates in an Array 448. Find All Numbers Disappeared in an Array

    后面3个题都是限制在1-n的,所有可以不先排序,可以利用巧方法做.最后两个题几乎一模一样. 217. Contains Duplicate class Solution { public: bool ...

  2. 关于chrom56版本以后的form标签提交bug

    最近遇到一个情况: 低版本的浏览器i运行如下代码: function query_mission(query_tag) { // 创建form表单 var ip_list = getIpList() ...

  3. JIRA使用方法,简易图解

          我们公司要用版本控制(SVN)和过程管理(JIRA)相配合开发软件,所以两个都得用喽!     JIRA是集项目计划.任务分配.需求管理.错误跟踪于一体的商业软件.JIRA创建的问题类型包 ...

  4. 基于VUE.JS的移动端框架Mint UI

    Mint UI GitHub:github.com/ElemeFE/mint 项目主页:mint-ui.github.io/# Demo:elemefe.github.io/mint- 文档:mint ...

  5. 对ArrayList存放的对象,按照对象的某个属性进行排序。

    使用Collections.sort()方法进行实现: import java.util.ArrayList; import java.util.Collections; import java.ut ...

  6. [原创]升级Gerrit的commit-msg,检查git commit时必须填写开发任务编号TaskID

    公司使用git+gerrit+jenkins进行持续集成实践,其中gerrit用来进行Code Review.另外我们自己研发了一套敏捷项目管理系统TPM(TeamPlus Management),用 ...

  7. Oracle cursors 游标 for循环遍历

    oracle提供了for循环语句,让我们可以遍历select搜索的结果.用法也很简单,代码如下: DECLARE ; BEGIN FOR C IN C1 LOOP -- 对select出的每一行进行操 ...

  8. MacOS(10.11.6)+Qt(5.5.1)+Xcode(8.2) C++开发环境配置

    VMware虚拟机安装MacOS(这里安装的是MacOS X 10.11.6), 百度很多, 不再详述. 安装Xcode(这里安装的是Xcode8.2) 下载(https://developer.ap ...

  9. [shell]关闭超时的进程

    应同事要求,写了个shell, 主要功能为查找超时的进程,并关闭! 调用方式: shell_sheep :  为进程名 30 : 为30分钟 从打印的日志能看出会多两个PID,不要惊慌,由于你执行时会 ...

  10. Spring第四天——SSH整合

    (从整合开始,使用回归使用eclipse) 一.三大框架版本:  struts2 hibernate5 spring4 二.SSH三大框架回顾: Hibernate: ORM思想 核心配置文件: 单独 ...