yzq 发表于 2017-1-1 08:15:35

Windows下Apache整合Tomcat

  今天在单位里面翻PAFA架构的教材,结果翻到一页,写到MVC属于WebServer,EJB属于AppServer。
  不是吧?
  这个有问题吧??
  然后回家一直一直研究,到最后发现。
  目前,Apache和Ngnix是属于WebServer,主要的功能包括负载均衡,静态资源缓存等等。
  -----还没有深入研究
  所谓的AppServer呢,应该就是Tomcat,Jetty,Resin,GlassFish等等,这些动态响应的用户请求的应用服务器了。
  引用网上的一句比喻:Apache是卡车,应用是水,卡车不能直接装水,需要一个容器,桶,那个就是Tomcat了。
  至于其他的比如说消息队列服务器,之类的,属于中间件。
  根据我的理解,给中间件下了个定义,就是为应用服务提供服务的组件。可以是软件支持。
  进入主题。
  首先安装Apache,Windows下的Apache支持到2.2.X。
  去官网下载一个。
  http://www.fayea.com/apache-mirror//httpd/binaries/win32/
  然后安装。
  在下载Tomcat。
  Tomcat的配置就不多说了,做Java的人都应该知道。
  还有一点,需要下载一个 “tomcat-connectors”。
  这个东西非常重要,用来让Apache识别Tomcat的。
  http://tomcat.apache.org/download-connectors.cgi
  把这个mod_jk-xxx.so文件放到Apache目录的/modules/下面。
  完了以后,就开始配置了。
  首先是配置Apache服务器的内容。
  在Apache文件下找到 conf/httpd.conf 
  <IfModule mime_module>
  </IfModule>
  加入以下内容:

      ### 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk.so
### 配置 mod_jk.
#加载集群中的workers
JkWorkersFile conf/workers.properties   
#加载workers的请求处理分配文件      
JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件
JkLogFile logs/mod_jk.log   
#指定日志级别                           
JkLogLevel warn   
  其中 LoadModule jk_module modules/mod_jk.so 这一句
  是告诉Apache和Tomcat整合的文件在哪里读取。
  后面引用了2个properties,需要自己建立。
  首先是worker.properties

# worker列表
worker.list=controller, status
#第一个server的配置,server名为s1
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.s1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.host=localhost
worker.s1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.s1.lbfactor=1

#第二个server的配置,server名为s2
#worker.s2.port=9009
#worker.s2.host=localhost
#worker.s2.type=ajp13
#worker.s2.lbfactor=1
#server名为controller,用于负载均衡
worker.controller.type=lb
worker.retries=3   #重试次数
#指定分担请求的server列表,用逗号分隔
worker.controller.balanced_workers=s1,s2
#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的
worker.controller.sticky_session=0
#worker.controller.sticky_session_force=1
worker.status.type=status
  我这里只配了一个Tomcat,做测试。
  如果一台机子配置多个Tomcat,注意端口不要冲突了。
  然后是新建 uriworkermap.properties

/*=controller                         #所有请求都由controller这个server处理
/jkstatus=status                   #所有包含jkstatus请求的都由status这个server处理
!/*.gif=controller                   #所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思
!/*.jpg=controller
!/*.png=controller
!/*.css=controller
!/*.js=controller
!/*.htm=controller
!/*.html=controller
#这里的"!”类似于java中的"!”,是“非”的意思。
  这个是配置请求转发的内容。
  Apache的部分配置完成了。
  主要是配置Apache的工作。
  为了让Apache识别Tomcat主机,需要给Tomcat主机加个名字:
  在Tomcat的conf文件夹下,
  server.xml
  改写配置

<Engine name="Catalina" defaultHost="localhost" >
|
V
<Engine name="Catalina" defaultHost="localhost"
jvmRoute="s1">

  这样就有名字了。
  然后启动2个服务器。。。
  登陆localhost/看看有没有跳转到Tomcat的首页。。。
页: [1]
查看完整版本: Windows下Apache整合Tomcat