`
dacoolbaby
  • 浏览: 1256233 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Windows下Apache整合Tomcat

    博客分类:
  • Java
 
阅读更多

今天在单位里面翻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的首页。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics