当前位置:论坛首页 > Linux面板 > 讨论

使用Resin来代替Tomcat

发表在 Linux面板2017-8-10 23:38 [复制链接] 4 917

本帖最后由 1502189025jesw 于 2017-8-11 18:50 编辑

前言:

     我们单位站点主要是A10 Networks+varnish+resin当然这里的resin是pro版,所以我们单位不管是码字员还是运维都对resin比较熟悉,至于resin比tomcat有哪些优势,请自行百度
     我们部门还却几台测试机还有下载服务器,正赶上单位机房淘汰了部分服务器就打申请领了几台回来,天气比较热,虽然有空调,大家都不想动手装,最后有同事推荐了宝塔的linux面板
      用PXE给几台服务器同时安装好centos 7,然后装上宝塔linux面板,python开发的面板功能感觉挺不错,发现里面有近年比较流行的nginx还有tomcat,试着安装了tomcat 发现连jdk也一起安装了,这样挺方便,虽然单独安装jdk也很快。
     不过发现了个bug,就是在面板里卸载tomcat的时候还保留着启动文件/etc/rc.d/init.d/tomcat文件没有删除并且保留着tomcat启动项,同时也没把jdk卸载掉,当然对于我来说,正好需要jdk不需要tomcat,这样不需要自己动手装jdk了

    上面说了那么多废话,现在开始干活
    首先删除tomcat的启动项和启动文件
  1. chkconfig --level 2345 tomcat off
  2. chkconfig --del tomcat
  3. rm -rf /etc/rc.d/init.d/tomcat
复制代码
下载resin源码包开始安装,这里我们选择的是标准版不是pro版,测试服务器 要是也用pro版那也太奢侈了,一大堆美金啊(当然破解版除外)把resin也安装到/www/server/目录下,和宝塔的面板同目录以后方便找,方便升级
  1. wget http://caucho.com/download/resin-4.0.53.tar.gz
  2. mkdir -pv /www/server/resin  
  3. tar -zxvf resin-4.0.53.tar.gz
  4. cd resin-4.0.53
  5. ./configure --prefix=/www/server/resin --with-java-home=/usr/java/default
  6. make && make install
复制代码

etc/rc.d/init.d/目录下建立启动文件resin,resin内容如下:
  1. #!/bin/bash

  2. ### BEGIN INIT INFO
  3. # Provides:          resin
  4. # Required-Start:    $remote_fs $network
  5. # Required-Stop:     $remote_fs $network
  6. # Default-Start:     2 3 4 5
  7. # Default-Stop:      0 1 6
  8. # Short-Description: The Resin Java Application Server
  9. ### END INIT INFO
  10. #
  11. ### BEGIN Fedora SysV
  12. #
  13. # chkconfig: 345 85 15
  14. # description: Resin is a Java Web server.
  15. # description: The Resin Java Application Server
  16. #
  17. ### END Fedora SysV
  18. #
  19. # To install, configure this file as needed and copy init.resin
  20. # to /etc/rc.d/init.d as resin.  Then use "# /sbin/chkconfig resin reset"
  21. #

  22. JAVA_HOME="/usr/java/default"
  23. RESIN_HOME="/www/server/resin"

  24. # for ubuntu
  25. if [ ! -d $JAVA_HOME ]; then
  26.   _JAVA_HOMES="/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-6-openjdk"

  27.   for _java_home in $_JAVA_HOMES; do
  28.     if [ -d $_java_home ]; then
  29.       JAVA_HOME=$_java_home
  30.       break
  31.     fi
  32.   done
  33. fi

  34. export JAVA_HOME RESIN_HOME

  35. JAVA="/usr/java/default/bin/java"
  36. #
  37. # Set to the server id to start
  38. #
  39. #SERVER="-server app-a"
  40. #
  41. # -resin-root /var/resin        -- the main data directory
  42. #
  43. RESIN_ROOT="-root-directory /www/server/resin"
  44. #
  45. # -conf /etc/resin/resin.xml   -- the main configuration file
  46. #
  47. RESIN_CONF="-conf /www/server/resin/conf/resin.xml"
  48. #
  49. # -log-directory /var/log/resin -- the main log directory
  50. #
  51. RESIN_LOG="-log-directory /www/wwwlogs"

  52. ARGS="$RESIN_CONF $RESIN_LOG $RESIN_ROOT $SERVER"

  53. if test -r /lib/lsb/init-functions; then
  54.   . /lib/lsb/init-functions
  55. fi

  56. type echo 1> /dev/null
  57. if test "$?" != 0; then
  58.   log_daemon_msg () {
  59.       if [ -z "$1" ]; then
  60.           return 1
  61.       fi

  62.       if [ -z "$2" ]; then
  63.           echo -n "$1:"
  64.           return
  65.       fi
  66.    
  67.       echo -n "$1: $2"
  68.   }
  69.   
  70.   log_end_msg () {
  71.       [ -z "$1" ] && return 1

  72.       if [ $1 -eq 0 ]; then
  73.         echo " ."
  74.       else
  75.         echo " failed!"
  76.       fi
  77.    
  78.     return $1
  79.   }

  80. fi

  81. case "$1" in
  82.   start)
  83.         echo "Starting resin"
  84.         if test -n "$USER"; then
  85.             su $USER -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start""" 1>/dev/null 2>/dev/null
  86.         else
  87.             errors=`$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS start 2>&1`
  88.             if [ $? != 0 ]; then
  89.                 echo $errors
  90.             fi
  91.         fi

  92.         echo $?
  93.         ;;
  94.   stop)
  95.         echo "Stopping resin"
  96.         if test -n "$USER"; then
  97.             su $USER -c """$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS shutdown""" 1>/dev/null 2>/dev/null
  98.         else
  99.             errors=`$JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS shutdown 2>&1`
  100.             if [ $? != 0 ]; then
  101.                 echo $errors
  102.             fi
  103.         fi
  104.         
  105.         echo $?
  106.         ;;
  107.   status)
  108.         $JAVA -jar $RESIN_HOME/lib/resin.jar $ARGS status
  109.         ;;
  110.   restart)
  111.         $0 stop
  112.         $0 start
  113.         ;;
  114.   *)
  115.         echo "Usage: $0 {start|stop|status|restart}"
  116.         exit 1
  117. esac

  118. exit 0
复制代码
赋予运行权限并添加启动项,并启动resin
  1. chmod +x /etc/rc.d/init.d/resin
  2. chkconfig --add resin
  3. chkconfig --level 2345 resin on
  4. service resin start
复制代码
然后检查一下resin是否正常启动了
  1. netstat -tnlp |grep java
  2. 或者
  3. netstat -lnp
复制代码
9.jpg

ok正常启动

下面在宝塔面板安全选项里开放8080端口
然后在浏览器里输入:http://ip:8080看到以下页面就表示安装成功了
10.jpg
下面说说使用nginx的反向代理功能代理resin使用80端口对外发布网站

1.首先在面板里按照正常方法建立站点
2.修改resin的配置文件增加站点
比如你在面板里增加域名test.com绑定的站点目录是/www/wwwroot/test.com
然后修改resin的配置文件,配置文件路径是:/www/server/resin/conf/resin.xml
编辑resin.xml文件,找到
  1.       <web-app id="/" root-directory="webapps/ROOT"/>

  2.     </host>
复制代码
</host>下面增加:
  1. <host id="test.com" root-directory=".">
  2. <web-app id="/" root-directory="/www/wwwroot/test.com"/>
  3. </host>
复制代码

如果有多个站点就多增加:
  1. <host id="域名" root-directory=".">
  2. <web-app id="/" root-directory="/www/wwwroot/目录"/>
  3. </host>
复制代码
注意这里的域名和目录要和面板里的对应,如图
11.jpg
5.jpg

保存后重启resin
  1. service resin restart
复制代码
3.在面板-站点里增加默认文档如:index.jsp default.jsp 等等
4.设置反向代理,如下图:
7.jpg
注意每个不带8080端口的网址都要对应带8080端口的网址,除非你是多域名

至此,你可以用不带端口的 网址访问resin的java站点了

可惜的是宝塔的面板不能管理resin

使用道具 举报 只看该作者 回复

管理员

发表于 2017-8-11 11:39:23 | 显示全部楼层
很棒的文章

tomcat卸载还残留/etc/rc.d/init.d/tomca文件及启动项的问题已经修复
感谢支持
面板信息=面板地址+账户+密码 SSH信息=服务器IP root密码
如果问题完美解决了,可以给我河妖打赏,6元就够我吃个泡面了,感恩不尽。
使用道具 举报 回复 支持 反对

管理员

发表于 2017-8-11 14:33:23 | 显示全部楼层
感恩你如此付出 你应该受到万人敬仰
使用道具 举报 回复 支持 反对

准内测组成员

发表于 2017-8-22 20:01:52 | 显示全部楼层
这属于高级技能
使用道具 举报 回复 支持 反对
发表于 2017-9-6 22:20:52 | 显示全部楼层
这个要收藏,我们公司也是用Resin
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

【求助贴,请有以下信息】

①错误提示截图;

②操作系统版本;

③环境信息;

信息详细,秒速帮你处理

上班时间:周一至周六 9:00~18:30

每周三更新

小黑屋|BT.cn  

© 2014-2017 bt.cn All Rights Reserved.   本服务器正在使用宝塔Linux面板维护管理

Powered by Discuz! X3.2

快速回复 返回顶部 返回列表