部署Jboss5拒绝直接使用ip方式访问

需求:
近期要用java开发的用户中心替换旧的用户中心,程序开发和测试使用的环境是tomcat6,计划部署到线上环境的时候使用jboss,主要考虑jboss支持热部署的原因要求是当用户使用ip访问的时候提示403权限拒绝(这变态的要求主要是机房管理的因素,主要针对的是80端口),使用域名访问的时候显示正常的应用

环境介绍:
操作系统:redhat enterprise linux 5.4 64位
系统ip:192.168.50.7/24
apache + mod_jk + jboss
apache版本:2.2.16
mod_jk版本:1.2.31
jboss版本:jboss5.1 GA
备注:之前考虑过在jboss上直接使用虚拟主机的方式实现,但使用ip和域名访问的时候都会出现404,且没有日志信息;考虑到jboss容器上只有部署一个用户中心的应用,
因而就放弃了使用jboss虚拟主机方式实现,将来如果有其他的java应用需要部署,可以考虑在一台服务器上部署多个jboss,监听不同的端口即可

 
   
  1. 1:编译安装apache2.2.16  
  2. wget http://archive.apache.org/dist/httpd/httpd-2.2.16.tar.gz -P /usr/local/src/tarbag  
  3. tar -zxvf /usr/local/src/tarbag/httpd-2.2.16.tar.gz -C /usr/local/src/software  
  4. cd /usr/local/src/software/httpd-2.2.16 &  
  5. ./configure --prefix=/usr/local/apache2.2.16 --enable-so --enable-rewrite --enable-headers --with-mpm=worker --enable-expires --enable-mods-shared=all   
  6. make && make install  
  7.  
  8. 2:下载安装jboss,boss需要java支持
  9. java的下载地址可以在java.com上找到 
  10. chmod u+x jdk-6u17-linux-i586.bin  
  11. ./jdk-6u17-linux-i586.bin    
  12. mv jdk1.6.0_17 /usr/local/java   
  13.  
  14. vi /etc/profile  添加如下内容到文件末尾  
  15. export JAVA_HOME=/usr/local/java  
  16. CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar  
  17. PATH=/usr/local/java/bin:$PATH  
  18. export PATH JAVA_HOME CLASSPATH  
  19.  
  20. source  /etc/profile  
  21. wget http://nchc.dl.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA.zip  
  22. unzip jboss-5.1.0.GA.zip -d /usr/local/  
  23. mv /usr/local/jboss-5.1.0.GA /usr/local/jboss5  
  24.  
  25. 删除jmx-console和admin-console等默认的jboss应用(若需要此类应用,也可以留着)  
  26. cd /usr/local/jboss5/server/default/deploy  
  27. mkdir /bak/laji  
  28. mv admin-console.war jbossws.sar jmx-console.war jmx-remoting.sar management messaging  /bak/laji  
  29. cp -rvp ROOT.war /bak/laji  
  30. rm -rf ROOT.war/*  
  31.  
  32. 修改jboss主配置文件相关内容如下  
  33.  
  34. <Service name="jboss.web"> 
  35.        
  36.        <Connector port="8080" address="0.0.0.0" 
  37.          maxThreads="2500" strategy="ms" maxHttpHeaderSize="8192" 
  38.          emptySessionPath="true" 
  39.          enableLookups="true" redirectPort="8443" acceptCount="100" 
  40.          connectionTimeout="20000" disableUploadTimeout="true" compression="on" 
  41.          compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
  42.          useIPVHosts="true" 
  43.          /> 
  44.            
  45. 启动jboss:/usr/local/jboss5/bin/run.sh -c default &   
  46. (也可以使用nohup方式来启动,或者等jboss在后台启动完毕后输入exit退出终端,然后重新登录服务器)  
  47. 关闭jboss: /usr/local/jboss5/bin/shutdown.sh -S  
  48.            
  49. 3:配置mod_jk和apache  
  50.  
  51. cd /usr/local/src/tarbag/  
  52. wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so  
  53. cp mod_jk-1.2.31-httpd-2.2.x.so /usr/local/apache2.2.16/modules/mod_jk.so  
  54.  
  55. 在apache主配置文件中添加如下内容  
  56. grep 'jk' /usr/local/apache2.2.16/conf/httpd.conf  
  57. Include conf/extra/mod_jk.conf  
  58.  
  59. 新增mod_jk.conf配置文件内容如下:  
  60. cat /usr/local/apache2.2.16/conf/extra/mod_jk.conf  
  61. LoadModule jk_module modules/mod_jk.so        //加载mod_jk模块  
  62. JkWorkersFile conf/extra/workers.properties   //该文件用于控制请求转发jboss的端口   
  63. JkLogFile logs/mod_jk.log                     //mod_jk的日志  
  64. JkLogLevel info                               //日志级别为info  
  65. JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"     //日志时间戳格式  
  66. JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories  
  67. JkRequestLogFormat "%w %V %T"                 //日志请求格式  
  68. JkMount /* cas                                  
  69. #JkMountFile conf/extra/uriworkermap.properties    
  70. JkShmFile logs/jk.shm                             
  71. # Add jkstatus for managing runtime data      
  72.  
  73. <Location /jkstatus/> 
  74. JkMount status  
  75. Order deny,allow  
  76. Deny from all  
  77. Allow from 192.168.50.8   
  78. Allow from 127.0.0.1  
  79. Location> 
  80.  
  81. cat /usr/local/apache2.2.16/conf/extra/workers.properties   
  82. worker.list=cas 
  83. # Define cas  
  84. worker.cas.port=8009 
  85. worker.cas.host=127.0.0.1  
  86. worker.cas.type=ajp13 
  87. worker.cas.cachesize=10 
  88.  
  89. worker.XXX.port 对应的是jboss应用的ajp端口,  
  90. worker.XXX.host主机IP地址   
  91. 这里注意一点 worker.list的列表项中出现的内容,一定要在mod_jk.conf里对应增加 JkMount /* XXX,否则apache是无法启动  
  92.  
  93. 配置apache虚拟主机如下  
  94. grep -v '^#' /usr/local/apache2.2.16/conf/extra/httpd-vhosts.conf  |grep -v '^$'  
  95. NameVirtualHost 192.168.50.7:80  
  96. <VirtualHost 192.168.50.7:80> 
  97.   ServerName 192.168.50.7  
  98.   <Location /> 
  99.   Order deny,allow  
  100.   Deny from all  
  101.   Location> 
  102. VirtualHost> 
  103. <VirtualHost 192.168.50.7:80> 
  104.   ServerName jboss.766.com   
  105.   CustomLog "|/usr/local/apache2.2.16/bin/rotatelogs /usr/local/apache2.2.16/logs/jboss_log_%Y%m%d 86400 480" combined  
  106.   Errorlog  "logs/jboss-error.log"  
  107.   RewriteEngine on  
  108.   JkMount /* cas  
  109. VirtualHost> 
  110.  
  111. /usr/local/apache2.2.16/bin/apachectl -k restart  
  112.  
  113. 测试:  
  114. tail -f /usr/local/apache2.2.16/logs/access_log   
  115. 192.168.50.8 - - [06/May/2011:13:45:28 +0800] "GET / HTTP/1.1" 403 202  
  116.  

  117.  
  118.  
  119.  

     

  120.  
  121. tail -f /usr/local/jboss5/server/default/log/localhost_access_log.2011-05-06.log   
  122. 192.168.50.8 - - [06/May/2011:15:17:28 +0800] "GET / HTTP/1.1" 200 37 

 

你可能感兴趣的:(部署Jboss5拒绝直接使用ip方式访问)