centos tomcat7 java_opts_CentOS安装Tomcat-7.0.57+启动配置+安全配置+性能配置

注:以下所有操作均在CentOS 6.5 x86_64位系统下完成。

#准备工作#

在安装Tomcat之前,请确保已经安装了JDK-1.7环境,具体见《CentOS安装JDK-1.7》。

#Tomcat7的安装#

开始下载Tomcat7并安装:

# cd /usr/local/src

#wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.zip

# cp apache-tomcat-7.0.57.zip /usr/local/# cd/usr/local

#unzip apache-tomcat-7.0.57.zip#rm -f apache-tomcat-7.0.57.zip#mv apache-tomcat-7.0.57/ tomcat-7.0.57#ln -s /usr/local/tomcat-7.0.57/ /user/local/tomcat

给系统设置Tomcat的路径:

# vim /etc/profile

export CATALINA_HOME=/usr/local/tomcat

# source/etc/profile

可以先尝试启动Tomcat看能否正常访问:

# sh /usr/local/tomcat/bin/startup.shCannotfind /usr/local/tomcat/bin/catalina.shThefileis absent or does not have execute permission

Thisfileis needed to run this program

#chmod +x /usr/local/tomcat/bin/*.sh

# sh /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME: /usr/Java/jdk1.7.0_72

Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

注:如果提示没有执行权限则可以先chmod一下sh文件。

这个时候显示服务器已经启动Tomcat成功了,打开浏览器访问地址http://youripaddress:8080/应该可以看到:

a07a722aac187ff00ee6f7e109e79176.png

关闭Tomcat则是:

# sh /usr/local/tomcat/bin/shutdown.sh

#Tomcat7的启动配置#

上面的步骤虽然已经可以正常启动Tomcat服务器,但是是以系统root账户来启动的,这是一种很不安全的行为。适用ps命令查看即可得知:

# ps aux | greptomcat

root14829 56.4 12.9 958580 64872 pts/0 Sl 10:22 0:05 /usr/java/jdk1.7.0_72/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

这里介绍一种方案(也是官方推荐的),使用root权限执行Tomcat自带的脚本daemon.sh,该脚本使用jsvc以普通用户权限去启动Tomcat,原理是root用户fork非root用户,同时可以监听80端口。

1)新建一个tomcat用户和用户组:

# idtomcatid: tomcat:无此用户

# groupadd tomcat

# useradd-g tomcat -s /sbin/nologin tomcat

#idtomcat

uid=503(tomcat) gid=503(tomcat) 组=503(tomcat)

2)修改Tomcat目录的权限:

# chown -R tomcat:tomcat /usr/local/tomcat-7.0.57#chown -R tomcat:tomcat /user/local/tomcat

#chmod -R 770 /usr/local/tomcat

3)生成jsvc:

# cd /usr/local/tomcat/bin

#tar zxf commons-daemon-native.tar.gz

#lscommons-daemon-1.0.15-native-src

# cd commons-daemon-1.0.15-native-src/unix

# ./configure --with-java=/usr/java/jdk1.7.0_72/...*** All done ***Now you can issue"make"#make#cp jsvc /usr/local/tomcat/bin

注:上面configure时请指定当前系统的JDK路径。

4)最后可以使用daemon.sh来启动Tomcat了:

# cd /usr/local/tomcat/bin

# ./daemon.shUnknown command: `'Usage: daemon.sh( commands ... )

commands:

run Start Tomcat without detaching from console

start Start Tomcat

stop Stop Tomcat

version What version of commons daemon and Tomcat

are you running?# ./daemon.sh start

这时可以查看下当前Tomcat进程的用户:

# ps aux | greptomcat

root16770 0.0 0.0 10432 408 ? Ss 11:09 0:00 jsvc.exec -java-home /usr/java/jdk1.7.0_72 -user tomcat -pidfile /usr/local/tomcat/logs/catalina-daemon.pid -wait 10 -outfile /usr/local/tomcat/logs/catalina-daemon.out -errfile &1 -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-daemon.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs= -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap

tomcat16771 2.2 14.2 959544 71428 ? Sl 11:09 0:05 jsvc.exec -java-home /usr/java/jdk1.7.0_72 -user tomcat -pidfile /usr/local/tomcat/logs/catalina-daemon.pid -wait 10 -outfile /usr/local/tomcat/logs/catalina-daemon.out -errfile &1 -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-daemon.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs= -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap

注:正常情况下就是有两个进程,参数都是一样,但属主不一样,一个是root,一个是tomcat。

可以看到现在Tomcat使用的是tomcat用户权限在运行了。

如果要关闭Tomcat,则可以使用命令:

# cd /usr/local/tomcat/bin

# ./daemon.sh stop

另外,使用Daemon后台启动有个要注意的地方就是必须保证权限,必须保证以下几个命令:

# chown -R tomcat:tomcat /usr/local/tomcat-7.0.57#chown -R tomcat:tomcat /user/local/tomcat

#chmod -R 777 /usr/local/tomcat-7.0.57/conf/Catalina

#chmod -R 777 /usr/local/tomcat-7.0.57/conf/Catalina/localhost

当然,我们还有一种方案是直接以普通用户tomcat去执行startup.sh来启动Tomcat,但是这个弊端是非root用户只能监听大于1024的端口,这种情况就无法使得Tomcat去监听80/443端口,并不是一种比较完美的方案。

#Tomcat7的安全配置#

1、删除/usr/local/tomcat/webapps下的所有目录。

2、禁止Tomcat服务器进行目录遍历,以防止泄漏系统信息及服务器信息:

# vim /usr/local/tomcat/conf/web.xml

default

org.apache.catalina.servlets.DefaultServlet

listings

false

1

3、开启Tomcat的日志记录功能:

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

4、禁止显示错误信息:

# vim /usr/local/tomcat/conf/web.xml

404

/404.jsp

5、最好删除jspx文件的解析,默认的Tomcat是可以解析jspx文件的,这个可能会带来安全风险,如果项目中不需要支持jspx文件,可以删除对jspx文件的解析功能,比如:

# vim /usr/local/tomcat/conf/web.xml

jsp

*.jsp

6、分配好文件目录权限,Web目录和文件属主不能与Tomcat启动用户属主相同,比如Tomcat如果是以tomcat用户权限启动的,则Web文件和目录的属主必须是非tomcat账户(比如可以是root账户)。另外,Web目录权限统一设置为755,web文件权限统一设置为644,只有上传目录这类可读写目录的权限才设置为777。

#Tomcat7的性能配置#

为了提高系统的可用性,根据业务需求,还可以对Tomcat进行一些配置,比如修改webapps目录到/data/www、修改线程数、配置合适的启动内存、设置UTF8编码等。

1、修改webapp默认目录:

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

2、 在处理GET请求时,Tomcat默认使用ISO-8859-1编码作为默认编码,这里一般根据业务需求最好设置为UTF-8编码:

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

3、 有时会提示内存泄漏(尤其是MySQL的驱动模块),这是因为在高版本的Tomcat中增加了检测内存泄漏的模块,其实一般可以将其禁止:

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

4、还可以根据系统配置和项目需求设置分配更多的内存给Tomcat:

# vim /usr/local/tomcat/bin/catalina.shJAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx256m -XX:PermSize=128m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true"

注:分配多少内存根据当前服务器情况而定,上面将java.awt.headless允许是因为某些验证码组件需要开启该功能。

更多Tomcat相关教程见以下内容:

Tomcat 的详细介绍:请点这里

Tomcat 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值