q968 发表于 2018-11-27 11:49:18

apache整合多个tomcat多虚拟主机单独管理jsp教程

  很简单.Apache 整合tomcat可以通过 JK, 这是往常的做法。但现在也可以通过 Apache 的反向的代理功能实现。
  不过我想LZ现在应该是需要 Apache + JK + Tomcat 这种配置了。
  先问问LZ说里边报的警告是什么?
  首先说说是 Apache 的配置 httpd.conf
  LZ 需要的是配置虚拟主机, 即 Apache + JK +( tomcat1 / tomcat 2)
  这么首先配的是 httpd.conf 的虚拟主机配置
  如下:httpd.conf 找到 #NameVirtualHost 去掉前边的 # 然后配置如下
  NameVirtualHost *:80
  #########################################
  
  ServerAdmin xxx@xxx.com
  DocumentRoot "/opt/webroot"
  ServerName localhost
  #ErrorLog logs/error.log
  JkMountFile conf/localhost.properties   #加载单独的mod_jk配置路径
  
  #########################################
  
  ServerAdmin xxx@xxx.com
  DocumentRoot "/opt/web1"
  ServerAlias www.web1.com
  #ErrorLog logs/error.log
  JkMountFile conf/web1.properties   #加载单独的mod_jk配置路径
  
  #########################################
  
  ServerAdmin xxx@xxx.com
  DocumentRoot "/opt/web2"
  ServerAlias www.web2.com
  #ErrorLog logs/error.log
  JkMountFile conf/web2.properties#加载单独的mod_jk配置路径
  
  ##################################
  以上配置的前提是你已经顺利编译安装好 mod_jk 模块
  然后修改 mod_jk 的全局配置 httpd-jk.conf
  vim conf/extra/httpd-jk.conf
  LoadModule      jk_module       modules/mod_jk.so
  JkWorkersFile   conf/workers.properties   #指定各个配置文件路径
  JkMountFile   conf/urimap.properties
  JkLogFile       logs/mod_jk.log
  JkLogLevel      warn
      #管理页面
  JkMount status
  
  :wq 保存退出
  #########################
  然后创建各自的 web1.properties ,web2.properties 配置文件,目录路径跟 httpd.conf 相同
  # vim conf/web1.properties
  /*=tomcat_web1
  !/*.gif=web1
  !/*.jpg=web1
  !/*.png=web1
  !/*.html=web1
  !/*.htm=web1
  #第一行的意思是把请求转往代号为 tomcat_web1(命名可与虚拟主机无关) 的 tomcat 端, 一会我们需要在 workers.properties 配置中设置。
  #而剩下的是不需要转往 tomcat 的请求类型, 因为 tomcat 处理静态文件性能很差, 所以这里的规则就是过滤,把静态文件处理留给apache。
  :wq 保存退出
  web2.properties 的配置方式跟 web1 相同。
  #################################
  编辑 jk 全局配置
  # Vim workers.properties
  worker.list=tomcat_web1,tomcat_web2,status   #告诉 jk 你需要他统管的 tomcat 名(代号) 最后一个"status" 是jk 的管理页面
  worker.status.type=status#为 status 路径设置属性为管理页面。
  ############# 先配置好每个 tomcat 与 JK 的链接参数 ################
  worker.s1.type=ajp13    #协议类型
  worker.s1.host=127.0.0.1 #tomcat所在服务器的ip,如果是本机就是 127.0.0.1
  worker.s1.port=8108 #tomcat的端口
  worker.s1.lbfactor=1 #如果是均衡负载状态,多个tomcat的负载比例。
  worker.s2.type=ajp13
  worker.s2.host=127.0.0.1
  worker.s2.port=8109
  worker.s2.lbfactor=1
  ############## 再配置 tomcat 与 jk 的调度 ###############
  worker.tomcat_web1.type=lb    #lb 的意思是可集成多个tomcat均衡负载,但只有一个tomcat 的时候也可以使用。
  worker.tomcat_web1.balance_workers=s1#开头的"worker.tomcat_web1"对应web1.properties的配置。这里配置群组的tomcat成员。"s1" 是成员代号。对应上边tomcat的链接参数。
  worker.tomcat_web1.sticky_session=True #是否打开session 粘贴。
  worker.tomcat_web2.type=lb #意义同上
  worker.tomcat_web2.balance_workers=s2
  worker.tomcat_web2.sticky_session=True
  :wq 配置完成后保存退出
  ###########################
  配置路径名:
  编辑或创建 urimap.properties
  # vim urimap.properties
  /*=lb         # 把请求发往 lb
  /jkstatus=status# 把JK管理页面的连接定为 http://www.web1.com/jkstatus 或者 http://www.web2.com/jkstatus
  :wq 保存退出
  你也可以修改或创建相同目录里localhost.properties 把 管理页面链接加到里边。这么链接地址就为 http://localhost/jkstatus
  #####################
  然后就剩下 tomcat 了
  修改端口号对应tomcat 组这个不用说了吧?
  最重要说的是既然在各自的 web1.properties 跟 workers.properties中配置了 tomcat 名, 这么除了告诉jk tomcat的IP地址以及端口号, 还必须告诉 tomcat 他的名字。
  Engine jvmRoute="tomcat_web1"
  分别在 tomcat1 跟 tomcat2 的server.xml 中找到相应的配置. 改上相应的参数!
  到此,即完成整个 Apache + JK + tomcat 的配置过程。

页: [1]
查看完整版本: apache整合多个tomcat多虚拟主机单独管理jsp教程