设为首页 收藏本站
查看: 791|回复: 0

[经验分享] Apache与tomcat整合方法

[复制链接]

尚未签到

发表于 2018-11-20 10:38:51 | 显示全部楼层 |阅读模式
  一、环境准备:
  Apache服务器:redhat 6.5  192.168.75.128/192.168.85.128
  TomcatA服务器:redhat 6.5 192.168.75.130
  TomcatB服务器:redhat 6.5 192.168.75.131
  

  

  Apache服务器安装httpd,安装方法参考:Linux编译安装Apache(httpd-2.4.18)
  TomcatA、TomcatB安装Java和tomcat,安装方法参考:linux安装tomcat
  

  

  

  二、Apache通过mod-jk来反向代理至后端tomcat服务器
  1、Apache服务器下载mod-jk
  软件版本:tomcat-connectors-1.2.41-src.tar.gz 下载地址 http://tomcat.apache.org/download-connectors.cgi
  

  

  # tar tomcat-connectors-1.2.41-src.tar.gz
  # cd tomcat-connectors-1.2.41-src/native/
  # ./configure  --with-apxs=/usr/local/apache/bin/apxs #把mod-jk编译成Apache模块
  # make && make install
  

  # ll /usr/local/apache/modules/mod_jk.so
  -rwxr-xr-x. 1 root root 1143306 Feb  3 18:04 /usr/local/apache/modules/mod_jk.so
  

2、Apache只代理一台后端tomcat的写法
  

  编辑httpd.conf配置文件,增加如下配置:
  vim /usr/local/apache/conf/httpd.conf
#DocumentRoot "/usr/local/apache/htdocs"
#Include /etc/httpd/extra/httpd-proxy.conf
Include /usr/local/apache/conf/extra/httpd-jk.conf  

  

  vim /usr/local/apache/conf/extra/httpd-jk.conf

LoadModule  jk_module  modules/mod_jk.so
JkWorkersFile  /usr/local/apache/conf/extra/workers.properties
JkLogFile  logs/mod_jk.log
JkLogLevel  debug
JkMount  /*  TomcatA
JkMount  /status/  stat1  

  vim /usr/local/apache/conf/extra/workers.properties
  

worker.list=TomcatA,stat1
worker.TomcatA.port=8009
worker.TomcatA.host=192.168.75.130
worker.TomcatA.type=ajp13
worker.TomcatA.lbfactor=1
worker.stat1.type = status  

  3、Apache只代理2台后端tomcat的写法,多台和两台的写法类似
  

  vim /usr/local/apache/conf/httpd.conf
#DocumentRoot "/usr/local/apache/htdocs"
#Include /etc/httpd/extra/httpd-proxy.conf
Include /etc/httpd/extra/httpd-jk.conf  

  

# cat /etc/httpd/extra/httpd-jk.conf
# Load the mod_jk
LoadModule  jk_module  modules/mod_jk.so
JkWorkersFile  /usr/local/apache/conf/extra/workers.properties
JkLogFile  logs/mod_jk.log
JkLogLevel  debug
JkMount  /*  lbcluster
JkMount  /status/  stat1  

# cat /usr/local/apache/conf/extra/workers.properties
worker.list=lbcluster,stat1
worker.TomcatA.port=8009
worker.TomcatA.host=192.168.75.130
worker.TomcatA.type=ajp13
worker.TomcatA.lbfactor=1
worker.TomcatB.port=8009
worker.TomcatB.host=192.168.75.131
worker.TomcatB.type=ajp13
worker.TomcatB.lbfactor=1
worker.lbcluster.type=lb
worker.lbcluster.balance_workers=TomcatA,TomcatB
worker.lbcluster.sticky_session=0
worker.lbcluster.method=R
worker.connection_pool_size=3000  
worker.connection_pool_minsize=50  
worker.connection_pool_timeout=50000  
worker.stat1.type = status  

  

  编辑tomcat配置文件,添加测试webapps站点
  

tomcatA配置:
# cat /usr/local/tomcat/conf/server.xml


  
  
  
  
  
  
  
  
  
   
   
  
  
  
   
   
   
   
   
   
   
     
   
     
      
              
      
      
      
      
      
      
        
        
        
        
      


      
   
  


tomcatB配置:
# cat /usr/local/tomcat/conf/server.xml


  
  
  
  
  
  
  
  
  
   
   
  
  
  
   
   
   
   
   
   

   
     
   

      
              
      
      
      
      
      
      
        
        
        
        

      


      
   
  
  

  

  

根据server.xml的配置,建立wepapps,另外在两台tomcat的/web/webapps/下面建立两个主页面
mkdir  /web/webapps/ -p
# cat /web/webapps/index.jsp


  TomcatA
  
    TomcatA
   
      
        Session ID
   
        
      
      
        Created on
        
     
   
  


# cat /web/webapps/index.jsp


  TomcatB
  
    TomcatB
   
      
        Session ID
   
        
      
      
        Created on
        
     
   
  
  

分别在两台机器上重启tomcat,在前端Apache机器上重启apache
# /etc/init.d/tomcat restart
# /etc/init.d/httpd retart
  

  至此如果后端tomcat不做任何的配置,也不配置jvmRoute,则前端的Apache能将请求代理至后端的两台tomcat,只是无法后端的tomcat的session无法实现共享而已
  

  在浏览器中输入前端http的地址:http://192.168.85.128/
  

DSC0000.jpg

  

DSC0001.jpg

  

  注意:
  worker.lbcluster.sticky_session=1 #如果要实现session绑定,则后端的tomcat一定要配置jvmRoute,而且jvmRoute和/etc/httpd/extra/workers.properties中的worker相同,所谓的session绑定,就是同一个客户端请求只会定位到同一个tomcat,除非这个tomcat挂了
  

  

  利用DeltaManager会话管理器实现后端tomcat集群session共享
  

  tomcatA配置:添加
# cat /usr/local/tomcat/conf/server.xml


  
  
  
  
  
  
  
  
  
   
   
  
  
  
   
   
   
   
   
   
   
     
   
  
           
            
            
            
            
            
              
            
            
            
            
         
         
         
     
         
         
  
  
      
              
      
      
      
      
      
      
        
        
        
        
      


      
   
  
  

tomcatB配置:添加
# cat /usr/local/tomcat/conf/server.xml


  
  
  
  
  
  
  
  
  
   
   
  
  
  
   
   
   
   
   
   

   
     
   
  
           
            
            
            
            
            
              
            
            
            
            
         
         
         
         
         
         
  
      

      
              
      
      
      
      
      
      
        
        
        
        

      


      
   
  
  

  修改web.xml配置文件
  # cp -r /usr/local/tomcat/webapps/ROOT/WEB-INF/ /web/webapps/
  vim /web/webapps/WEB-INF/web.xml
  增加一行: 表示项目是支持集群的
  

DSC0002.jpg

  

  

  分别在两台机器上重启tomcat,在前端Apache机器上重启apache
  # /etc/init.d/tomcat restart
  # /etc/init.d/httpd retart
  

  测试:在浏览器中输入前端http的地址:http://192.168.85.128/
  

  

DSC0003.jpg

  

DSC0004.jpg

  

  nginx
  

  # /etc/init.d/httpd stop
  rpm -ivh epel-release-6-8.noarch.rpm
  

  # yum install nginx -y
  # cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.orig
  

  # vim /etc/nginx/conf.d/default.conf
  #
  # The default server
  #
  upstream tomcat {
    server 192.168.75.130:8080;
    server 192.168.75.131:8080;
  }
  

  server {
  listen       80 default_server;
  server_name  _;
  

  #charset koi8-r;
  

  #access_log  logs/host.access.log  main;
  

  # Load configuration files for the default server block.
  include /etc/nginx/default.d/*.conf;
  

  location / {
  # root   /usr/share/nginx/html;
  # index  index.html index.htm;
         proxy_pass http://tomcat;
  }
  

  error_page  404              /404.html;
  location = /404.html {
  root   /usr/share/nginx/html;
  }
  

  # redirect server error pages to the static page /50x.html
  #
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  root   /usr/share/nginx/html;
  }
  

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #    proxy_pass   http://127.0.0.1;
  #}
  

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #    root           html;
  #    fastcgi_pass   127.0.0.1:9000;
  #    fastcgi_index  index.php;
  #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  #    include        fastcgi_params;
  #}
  

  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  #    deny  all;
  #}
  }
  

  

  # nginx -t
  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  nginx: configuration file /etc/nginx/nginx.conf test is successful
  # /etc/init.d/nginx start
  Starting nginx:                                            [  OK  ]
  

  测试:在浏览器中输入前端http的地址:http://192.168.85.128/
  

DSC0005.jpg

DSC0006.jpg

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637292-1-1.html 上篇帖子: 如何查看Apache的连接数和当前连接数 下篇帖子: FreeBSD10.2安装apache22
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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