码迷,mamicode.com
首页 > 其他好文 > 详细

Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境

时间:2014-12-22 19:12:44      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

一、安装Tomcat

下载链接:

http://mirrors.cnnic.cn/apache/tomcat/tomcat-6/v6.0.43/bin/apache-tomcat-6.0.43.zip

http://apache.fayea.com/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.zip

http://apache.fayea.com/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.zip

1.上传下载好的tomcat包,解压并拷贝到你需要安装的目录下,同时新建软链接指向tomcat目录。

# unzip apache-tomcat-6.0.43.zip
# cp -r  apache-tomcat-6.0.43  /usr/local/tomcat-6.0.43
# ln -s  /usr/local/tomcat-6.0.43 /user/local/tomcat

2.新建tomcat用户用于启动tomcat,主要是从安全上考虑,毕竟root用户权限太大,,,

# groupadd tomcat  #添加tomcat用户组#
# useradd -s /bin/bash -g tomcat tomcat #添加tomcat用户到tomcat用户组#
# usermod -L tomcat #锁定用户无法登录# #
chown -R tomcat:tomcat /usr/local/tomcat #设置目录权限#

3.添加随机启动脚本

# vi /etc/rc.local

在最后面加入下面内容:

----------------------------------------------------------------

# tomcat随机启动命令(su 空格 tomcat 空格 -c 空格 ‘路径‘)

# su - tomcat -c /usr/local/tomcat/bin/startup.sh
# su - tomcat -c /usr/local/tomcat/bin/catalina.sh start  #也可

---------------------------------------------------------------

reboot试试,JSP用ROOT启动不安全的问题解决了。

 

# su - tomcat -c /usr/local/tomcat/bin/shutdown.sh  #tomcat 停止命令。
# su - tomcat -c ‘/usr/local/tomcat/bin/catalina.sh stop‘ #也可

 

二、端口转发

非root用户其实没有绑定80端口的权限。在Linux下低于1024的端口是root专用,

而Tomcat安装后默认使用用户 tomcat启动的,所以将端口改为80后启动,

会产生错误:java.net.BindException: Permission denied:80。

解决方法是(两种):
1.修改应用的端口,考虑部署的应用较多,放弃这个相当简单的办法.
2.Iptables端口转发功能
第一步,重将Tomcat的端口(server.xml)由80改回8080。
第二步,通过Iptables端口实现80到8080的转发,命令为:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

# service iptables save

# service iptables restart

这样,用户访问80端口和8080端口其实都到了8080端口。

 

三、增加查看tomca运行状态脚本

vi /usr/local/tomcat/bin/catalina.sh

在  大约 475 行左右的 else 代码段新增一个else判断

 elif [ "$1" = "version" ] ; then
 
     "$_RUNJAVA"          -classpath "$CATALINA_HOME/lib/catalina.jar"        org.apache.catalina.util.ServerInfo
 elif [ "$1" = "status" ] ; then 

     ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk {printf $1 " "} | wc | awk {print $2} >/tmp/tomcat_process_count.txt
         read line < /tmp/tomcat_process_count.txt
     if [ $line -gt 0 ]; then
         echo -n "tomcatd ( pid "
         ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap
     start" | awk ‘{printf $1 " "}‘
         echo ") is running..."
     else
         echo "Tomcat is stopped"
     fi
 else

好了,这样就可以查看tomcat的运行状态了,如果你的sh脚本功力不错的话,可以再加一个重启命令restart。

 

四、加大tomcat运行内存防止程序报异常[ java.lang.OutOfMemoryError: PermGen space ]

vi /usr/local/tomcat/bin/catalina.sh

 

在脚本开始执行的最前头设置如下配置:

JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss1024k -XX:PermSize=256M -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m -Djava.awt.headless=true"

红色字体请根据自己服务器的实际配置酌情增大或减小。

 

 

借鉴:

http://www.linuxidc.com/Linux/2012-09/70481.htm

http://www.cnblogs.com/ebs-blog/archive/2010/10/14/2167288.html

http://blog.csdn.net/cnfixit/article/details/7030666

http://blog.csdn.net/wuyigong111/article/details/17410661

http://wenku.baidu.com/link?url=yZXEqZFAG4WNVhiAOoh4uHy_eQ5FV3JSiNPRa9zbAZ1Wj3hNS6h2upCv0TgCqAcJnqNnxqAf5nRpYD_5r_-4JJRa4mdnkqqZwuvwg4gAmbG

 

Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境

标签:

原文地址:http://www.cnblogs.com/phpdragon/p/4174799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!