tomcat的安装

jdk版本安装

#!/bin/bash
# desc: jdk安装脚本1. 1.7 1.8
download_url='http://**************'
jdk_env='/etc/profile.d/java-env.sh' # apr模式
yum install -y epel-release tomcat-native apr*
# 熵池底包
yum -y install rng-tools
echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' >/etc/sysconfig/rngd
service rngd start
chkconfig rngd on function jdk6() {
jdk_tar='jdk-6u45-linux-x64.bin'
jdk_dir='jdk1.6.0_45' [ -d /usr/java ] || mkdir /usr/java
[ -f ${jdk_tar} ] || wget $download_url/${jdk_tar}
chmod +x $jdk_tar
[ -d ${jdk_dir} ] || ./$jdk_tar
[ -d /usr/java/${jdk_dir} ] || mv $jdk_dir /usr/java [ -f ${jdk_env} ] || echo 'export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib' > $jdk_env
} function jdk7() {
jdk_tar='jdk-7u79-linux-x64.tar.gz'
jdk_dir='jdk1.7.0_79' [ -d /usr/java ] || mkdir /usr/java
[ -f ${jdk_tar} ] || wget $download_url/${jdk_tar}
[ -d /usr/java/$jdk_dir ] || tar -xvf ${jdk_tar} -C /usr/java [ -f ${jdk_env} ] || echo 'export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib'>$jdk_env
} function jdk8() {
jdk_tar='jdk-8u144-linux-x64.tar.gz'
jdk_dir='jdk1.8.0_144' [ -d /usr/java ] || mkdir /usr/java
[ -f ${jdk_tar} ] || wget $download_url/${jdk_tar}
[ -d /usr/java/$jdk_dir ] || tar -xvf ${jdk_tar} -C /usr/java [ -f ${jdk_env} ] || echo 'export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib' >$jdk_env
} case $ in
)
jdk6
;;
)
jdk7
;;
)
jdk8
;;
*)
echo "you must select jdk version!!"
echo "bash $0 6|7|8"
exit
;;
esac

另一个脚本:

#!/bin/bash

# JDK6
wget http://69.172.86.99:98/jdk-6u45-linux-x64.bin
# JDK7
wget http://某个ip/jdk-7u79-linux-x64.tar.gz
# JDK8
wget http://某个ip/jdk-8u144-linux-x64.tar.gz ---
# 此处以jdk7举例
tar -zxvf jdk-7u79-linux-x64.tar.gz
mkdir /usr/java
mv jdk1..0_79/ /usr/java/ # java-env配置
vim /etc/profile.d/java-env.sh
************************************
export JAVA_HOME=/usr/java/jdk1..0_79
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
************************************ # catalina.sh
************************************
JAVA_HOME=/usr/java/jdk1..0_79
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib JAVA_OPTS="-server -Xms2G -Xmx8G -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+AggressiveOpts -XX:MaxDirectMemorySize=4G"
************************************
# 熵池底包
yum -y install rng-tools
echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' >/etc/sysconfig/rngd
service rngd start
chkconfig rngd on # apr模式
yum install -y epel-release apr*
yum install -y tomcat-native # jdk1.(安装与jdk7和jdk8不同)
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
mv jdk1..0_45 /usr/java/

下载包

jkd官网下载包页面(jdk1.8):
wget http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html tomcat官网下载包页面:
wget https://tomcat.apache.org/download-80.cgi
下载安装包:
wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
wget http://apache.communilink.net/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
[root@localhost ~]# mkdir -p /usr/local/src
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# ll
total
-rw-r--r--. root root Jun : apache-tomcat-8.5..tar.gz
-rw-r--r--. root root Jun : jdk-8u171-linux-x64.tar.gz
[root@localhost src]# mkdir /usr/local/jdk
[root@localhost src]# mkdir /usr/local/tomcat8
创建密码和用户,为了安全。
[root@localhost src]# useradd -u tomcat
[root@localhost src]# passwd tomcat
cd /usr/local/src
tar zxvf jdk-8u171-linux-x64.tar.gz
这里tar包可以做个md5值,防止解密,安全。
mv jdk1..0_171/ /usr/local/
ln -s /usr/local/jdk1..0_171/ /usr/local/jdk
tar zxvf apache-tomcat-8.5..tar.gz
mv apache-tomcat-8.5. /usr/local/
ln -s /usr/local/apache-tomcat-8.5./ /usr/local/tomcat vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk-1.8.0.161-.b14.el7_4.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin source /etc/profile

启动tomcat
/usr/local/tomcat/bin/start.sh
/usr/local/tomcat8/logs/catalina.out是启动的日志文件。如果启动不起来可以查看该日志。
    在tomcat-users.xml中可以设定角色:
在倒数第二行配置
<role rolename="manager-gui" />
<role rolename="admin-gui" />
<user username="tomcat" password="123456" roles="manager-gui,admin-gui" />
重启tomcat,启动时候会将一些文件放到temp和work目录下,生产下重启是最好清空该目录下内容。
可以启动http://IP:8080/host-manager
写个启动脚本

vim tomcat.sh
#!/bin/bash TOMCAT_PATH=/usr/local/tomcat
usage(){
echo "Usage: $0 [start|stop|status|restart]"
    } status_tomcat(){
ps aux | grep java | grep tomcat | grep -v 'grep'
} start_tomcat(){
/usr/local/tomcat/bin/start.sh
} stop_tomcat(){
TPID=$(ps aux | grep java | grep tomcat | grep -v 'grep'|awk '{print $2}')
kill - $TPID
sleep ;
TSTAT=$(ps aux | grep java | grep tomcat | grep -v 'grep'|awk '{print $2}')
if [ -z $TSTAT];then
echo "tomcat stop"
else
kill - $TSTAT
}
fi
cd $TOMCAT_PATH
rm -rf temp/*
rm -rf work/*
} main(){
case $1 in:
   start)
start_tomcat;;
stop)
stop_tomcat;;
status)
status_tomcat;;
restart)
stop_tomcat && start_tomcat;;
*)
usage;

http://ip:8080/manager/status    
可以查看JVM详情(heap memory,堆内存)。
调优调堆内存的情况。

tomcat安全规范:
tomcat用户
安装包下载下来,做个md5
md5sum -c jdk-8u171-linux-x64.tgz.md5

1 telent管理端口(强制)
关闭8005端口
telnet 127.0.0.1 8005然后输入SHUTDOWN
类别:telnet管理端口保护
配置内容和说明:1)修改默认的8005管理端口为不易猜测的端口(大于1024)2)修改shutdown为其他字符串,进行配置端口配置8000-8999
标准配置:<Server port="8527" shutdown="dangerous">
备注:上面是建议配置,实际配置按服务器实际情况。

2 ajp连接端口的保护

类别:telnet管理端口保护
配置内容和说明:1)修改默认的ajp8009管理端口为不易冲突的端口(大于1024)
                2)修改iptables规则限制ajp端口访问的权限仅为线上机器
标注配置:<Connector port="8528" protocol="AJP/1.3" redirectPort="8443" />
备注:上面是建议配置,实际配置按服务器实际情况,端口配置在8000-8999之间
        保护此端口的目的是防止线下的测试流量被mod_jk转发只线上tomcat服务器。
(一般使用的http的,所有可以直接注释掉)
<--   -->

3 禁用管理端(强制)

类别:禁用管理端(强制)
配置内容和说明:1)第一次安装删除默认的tomcat安装目录下的tomcat-user.xml,重启后还会生成新的文件。
                2)删除tomcat/webapps下的默认的所有目录和文件,manager除外。
                3)将tomcat应用根目录配置为tomcat安装目录以外的目录;
标注配置:
备注:

4

5文件列表访问控制
conf/web.xml文件中default部分listings配置必须为false,默认是false。true为允许列出。
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>

6版本信息隐藏

配置内容和说明:1)修改conf/web.xml重定向到403,404,500等错误到指定的错误页面
                2)也可以修改应用程序目录下的web-inf/web.xml下的配置进行错误页面的重定向
标准配置:<error-page>
<error-code></error-code>
<location>/forbidden.jsp</location>
           </error-page>

<error-page>
<error-code></error-code>
<location>/notfound.jsp</location>
            </error-page>
          
            <error-page>
<error-code></error-code>
<location>/systembusy.jsp</location>
           </error-page>

备注:在配置中对一些常见错误进行重定向,避免当出现错误时,tomcat默认显示的错误页面暴露服务器和版本信息。
      必须确保根目录下错误页面已经存在,其中的forbidden.jsp notfound.jsp systembusy.jsp生产中的页面,路径。

7 server header重写

配置内容和说明:1在http connector配置中加入server的配置
标准配置:server="webserver或者jdws"
备注:当tomcat http端口直接提供web服务时,此配置生效,将会替换http响应 server header部分的默认配置
      默认是Apache-Coyote/1.1

curl --head http://ip:8080/

8 访问ip限制(省略)

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

unpackWARs:解压war包
autoDeploy:自动部署,改为false,重新加载。不好用。直接重启。

9 启停脚本权限回收

配置内容和说明: 去除其他用户对tomcat的bin目录下shutdown.sh startup.sh catalina.sh的可执行权限
标准配置:                chmod -R 744 tomcat/bin/*
                
10 访问日志格式规范
配置内容和说明:开启tomcat默认访问日志中的Referer和User-Agent记录
标准配置:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" %{Referer}i %{User-Agent}i%D"
resolveHosts="false"/>

备注:开启Referer和User-Agent是为了一旦出现安全问题能更好的根据日志进行排查。

tomcat内部调优:
https://blog.csdn.net/u012562943/article/details/51441157

tomcat的安装和优化的更多相关文章

  1. linux平台下Tomcat的安装与优化

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

  2. Linux系统中tomcat的安装及优化

    Linux系统中Tomcat 8 安装 Tomcat 8 安装 官网:http://tomcat.apache.org/ Tomcat 8 官网下载:http://tomcat.apache.org/ ...

  3. 转-Tomcat 8 安装和配置、优化

    https://github.com/judasn/Linux-Tutorial/blob/master/Tomcat-Install-And-Settings.md Tomcat 8 安装 Tomc ...

  4. Tomcat安装与优化

    Tomcat安装与优化 1.安装jdk环境 最新的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo ...

  5. HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

    这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...

  6. tomcat6~7~8用户设置及一个独立服务器上跑多个tomcat配置JVM设置优化亲测

    tomcat6管理用户 在tomcat `安装根目录`/conf/tomcat-users.xml

  7. linux应用之tomcat的安装及配置(centos)

    CentOS 6.6下安装配置Tomcat环境 [日期:2015-08-25] 来源:Linux社区  作者:tae44 [字体:大 中 小]   实验系统:CentOS 6.6_x86_64 实验前 ...

  8. Linux平台下_tomcat的安装与优化

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

  9. Tomcat服务部署及优化

    Tomcat 服务部署及优化 1.Tomcat简介 2.Tomcat 服务安装及部署 3.Tomcat虚拟主机配置 4.Tomcat 优化 1.Tomcat简介: 概述: Tomcat是Java语言开 ...

随机推荐

  1. Volley源码解析(三) 有缓存机制的情况走缓存请求的源码分析

    Volley源码解析(三) 有缓存机制的情况走缓存请求的源码分析 Volley之所以高效好用,一个在于请求重试策略,一个就在于请求结果缓存. 通过上一篇文章http://www.cnblogs.com ...

  2. sqlite总结1

    I Shell下命令行程序CLP I .help II 命令的简写 .e = .quit .s .h = .help II 数据库管理 A 创建数据库 1 CREATE TABLE id_name(i ...

  3. C++拾遗(四)——顺序容器

    之前一篇博文(<初窥标准库>)简单了解了一种最常用的顺序容器:vector类型.本文将对该文内容进行进一步的学习和完善,继续讨论标准库提供的顺序容器类型.所谓顺序容器,即将单一类型的元素聚 ...

  4. 动手使用ABAP Channel开发一些小工具,提升日常工作效率

    今天的故事要从ABAP小游戏说起. 中国的ABAP从业者们手头或多或少都搜集了一些ABAP小游戏,比如下面这些. 消灭星星: 扫雷: 来自我的朋友刘梦,公众号"SAP干货铺"里的俄 ...

  5. Vue v-if与v-show的区别

    用了 viewjs  预览图片的时候 发现 用着两个 还是有区别的, 相同点==== v-if与v-show都可以动态控制dom元素显示隐藏 不同点 = ====v-if显示隐藏是将dom元素整个添加 ...

  6. 2018 北京区域赛 I - Palindromes (找规律)

    题目 HihoCoder - 1878 题目大意 给出k,让求出第k个回文数(k的“长度”不超过1e5) 题解 之前做过类似的题,是统计各阶段的数找到第K个回文数,但这里K太大,需要寻找新的方法. 打 ...

  7. 朴素贝叶斯分类<转载>

    转自http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 0.写在前面的话 我个人一直很喜欢 ...

  8. pandas小结

    pandas part I: # 总结: DataFrame.loc[0:5] 一共6行数据,而切片[0:5]只有5个数据 在对df的行数据删除后,有些index已缺失,此时用 iloc[]来按照位置 ...

  9. 【转】IntelliJ 创建main函数快捷

    http://blog.csdn.net/tiantiandjava/article/details/42269173 今天偶然发现了IntelliJ中 创建main函数的快捷键,依次还有for循环, ...

  10. EOF与feof

    在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file).在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件.在文本文件中,数据都是 ...