windows环境下JSP环境搭建:Apache2.4+tomcat8.0动静分离,负载均衡

【第一种连接方式:mod_jk】

一、首先说明一下什么是mod_jk?

Apache自身是用来加载静态页面的,如果要加载动态页面比如jsp,还要做与Tomcat的整合,mod_jk就是整合Apache2.4与Tomcat的连接器。三者关系如下:

Apache:这里指的是httpd,Web服务器,用来处理静态文件。

tomcat:应用服务器,是servlet、jsp(jsp在后面其实也是被解释成servlet)的运行容器,可以处理servlet、jsp这些动态文件,当然也可以处理静态文件,但是性能不如Apache、nginx这些web服务器性能好。虽然一般还是单独使用web服务器来处理静态文件,应用服务器处理动态文件。

mod_jk:是tomcat提供的、用来连接Apache与tomcat的一个插件,默认下载的tomcat中是没有的,需要单独下载。

二、mod_jk的下载地址 

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

选择合适的版本,Apache2.4就选择如下图所示:

三、JK的配置最关键的三个文件:

  1. httpd.conf:Apache服务器的配置文件,用来加载JK模块以及指定JK配置文件信息
  2. workers.properties :到Tomcat服务器的连接定义文件
  3. uriworkermap.properties:URI映射文件,用来指定哪些URL由Tomcat处理,你也可以直接在httpd.conf中配置这些URI,但是独立这些配置的好处是JK模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动Apache服务器。

四、配置Apache2.4与Tomcat的连接

1、将下载的mod_jk.so文件放到Apache24\modules目录下。

2、打开Apache24\conf\httpd.conf,在最后一行加入下方代码:

# 加载mod_jk模块
LoadModule jk_module modules/mod_jk.so

# 指定tomcat监听配置文件地址(加载集群中的workers)
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties

# 指定日志存放位置
JkLogFile logs/mod_jk.log
JkLogLevel warn

#指定哪些请求交给tomcat处理,"DLOG4J"为在 workers.propertise里指定的负载分配控制器名  所有的请求都交给 control
JkMount /*.* DLOG4J

3、在Apache24\conf\目录下新建两个文件分别是 workers.properties、uriworkermap.properties。这两个文件的内容大概如下:

workers.properties

#
# 1.首先我们配置了两个类型为ajp13的worker分别是s1和s2,它们指向同一台服务器上运行在两个不同端口8109和8209的Tomcat上。
# 2.接下来我们配置了一个类型为lb(也就是负载均衡的意思)的worker,它的名字是DLOG4J,这是一个逻辑的worker,它用来管理前面配置的两个物理连接s1和s2。
# 3.最后还配置了一个类型为status的worker,这是用来监控JK本身的模块。有了这三个worker还不够,我们还需要告诉JK,哪些worker是可用的,所以就有worker.list = DLOG4J, status 这行配置。
#

# list the workers by name

worker.list=DLOG4J, status

# localhost server 1
# ------------------------
worker.tomcat1.port=8109
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13

# localhost server 2
# ------------------------
worker.tomcat2.port=8209
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.stopped=1

#负载均衡分发控制器(server名为DLOG4J,用于负载均衡)
worker.DLOG4J.type=lb
#重试次数
worker.retries=3
worker.DLOG4J.balanced_workers=tomcat1, tomcat2
#粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的, 即session粘着。若设置true,则同一个浏览器的请求(cookie相同)将会被分发到同一个tomcat(节点)
#即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为False
worker.DLOG4J.sticky_session=1

worker.status.type=status

uriworkermap.properties 

# 指定哪些链接是由Tomcat处理的,哪些是由Apache直接处理的
# 所有的请求都由DLOG4J这个worker进行处理,但是有几个例外,/jkstatus请求由status这个worker处理。
# 另外这个配置中每一行数据前面的感叹号表示接下来的URI不要由JK进行处理,也就是Apache直接处理所有的图片、css文件、js文件以及静态html文本文件。

/*=DLOG4J
/jkstatus=status

!/*.gif=DLOG4J
!/*.jpg=DLOG4J
!/*.png=DLOG4J
!/*.css=DLOG4J
!/*.js=DLOG4J
!/*.htm=DLOG4J
!/*.html=DLOG4J

4、Tomcat 8.0/conf/server.xml添加站点host,代码如下:

<Host name="www.456.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
	prefix="localhost_access_log." suffix=".txt"
	pattern="%h %l %u %t &quot;%r&quot; %s %b" />
	<Alias>456.com</Alias>
	<Context docBase="D:\wwwroot" path=""></Context>
</Host>

5、Tomcat配置文件Service.xml主要注意两个地方,一个是Engine节点需要增加节点标识jvmRoute,另一个是把Cluster节点的注释去掉,具体如下:

<!--jvmRoute在各个Tomcat配置中不能重复且要与worker.properties文件中的名称一致-->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<!--把Cluster节点的注释去掉,表示打开session-->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

6、Tomcat 8.0/conf目录下,web.xml 最后增加 一句:

<!--允许该tomcat实行session的复制黏贴-->
<distributable/>

7、以上配置ok后,直接运行Apache和Tomcat 8.0即可

8、apache无法启动报错:The request operation has failed ,进入Apache24\bin目录下,使用cmd命令输入:httpd -t,会显示报错原因,如下:

【第二种连接方式:http_proxy】 

利用Apache自带的mod_proxy模块使用代理技术来连接Tomcat。在配置之前请确保是否使用的是2.2.x版本以上的Apache服务器。因为2.2.x以上版本对这个模块进行了重写,大大的增强了其功能和稳定性。

(1)、Apache24\conf\httpd.conf加载以下模块(把前面的#号去掉)

LoadModuleproxy_module modules/mod_proxy.so
LoadModuleproxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

(2)、Apache24\conf\extra\httpd-vhosts.conf 文件里,配置ProxyPass 

<VirtualHost *:88>
    # 邮箱地址
    ServerAdmin admin@qq.com
    # 网站所在目录
    DocumentRoot "D:\wwwroot"
    # 网站域名
    ServerName www.456.com
    ServerAlias 456.com
    # 日志地址
    ErrorLog "logs/456.com-error.log"
    CustomLog "logs/456.com.log" common
    # 转发地址
    ProxyPass / http://www.456.com:8090/
    ProxyPassReverse /  http://456.com:8090/
</VirtualHost>

(3)、Tomcat 8.0/conf/server.xml添加站点host,代码如下:

<Host name="www.456.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
	prefix="localhost_access_log." suffix=".txt"
	pattern="%h %l %u %t &quot;%r&quot; %s %b" />
	<Alias>456.com</Alias>
	<Context docBase="D:\wwwroot" path=""></Context>
</Host>

 (4)、配置好之后,直接运行Apache和Tomcat 8.0就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值