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