×
新网 > 虚机资讯 > 正文

apache整合tomcat(一)

摘要: windows 和 linux 系统中 整合 配置及遇到的问题处理方法

win8系统下的Apache整合Tomcat
1 安装apache 版本:apache_2.2.14-win32-x86-no_ssl
2 安装tomcat 版本:apache-tomcat-7.0.54-windows-i64.zip

1 (58).jpg
 

配置tomcat

默认情况下,Tomcat在server.xml中配置了两种连接器:

第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

两种端口可以同时开,也可以开一个。例如我们使用apache通过ajp进行负载均衡配置时,可以关掉tomcat的http8080端口以防止可以被单独访问。

参考资料 http://limingnihao.iteye.com/blog/1934548

配置apache
1 负载平衡支持
httpd.conf中找到下列几行 并解开
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so


2 多站点配置
httpd.conf 中找到
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Include conf/extra/httpd-vhosts.conf
两行 解开 目的是让Apache在启动时能加载虚拟主机模块
参考资料 http://www.gn00.com/thread-213269-1-1.html


3 MOD_JK
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。应该把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定

是否要把客户请求转发给Tomcat服务器处理。例如预先配置好所有"/*.jsp"形式的URL都由Tomcat服务器来处理
Tomcat提供了不同的JK插件的实现模块。常用的JK插件有:
与Apache HTTPD服务器集成:mod_jk.so
与Windows IIS服务器集成:isapi_redirect.dll
4 Workers.properties
Workers实际上属于Tomcat的链接器(Connector),代表了一个Tomcat实例
配置项
worker.list=seo
worker.maintain=60

# ======================seo=======================
worker.seo1.port=8009
worker.seo1.host=127.0.0.1
worker.seo1.type=ajp13
worker.seo1.socket_timeout=0
worker.seo1.socket_keepalive=true
worker.seo1.lbfactor=1

worker.seo.type=lb
worker.seo.balance_workers=seo1
#=================================================

5 mod_jk.conf
# a versioned file name.
LoadModule jk_module modules/mod_jk_2.2_32.so
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkShmFile logs/mod_jk.shm
# JkOptions +RejectUnsafeURI
# JkStripSession On
JkWatchdogInterval 60
<Location /jk-status>
# Inside Location we can omit the URL in JkMount
JkMount jk-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
<Location /jk-manager>
# Inside Location we can omit the URL in JkMount
JkMount jk-manager
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
JkMountFile conf/uriworkermap.properties
JkMount /* balancer
# JkUnMount /myapp/static/* *
# JkUnMount /myapp/images/* balancer
# SetEnvIf REQUEST_URI ".(htm|html|css|gif|jpg|js)$" no-jk
# SetEnvIf Request_URI "/transactions/" JK_REPLY_TIMEOUT=600000
# SetEnvIf Request_URI "/reports/" JK_REPLY_TIMEOUT=0
</IfModule>

6 目录文件访问
<Directory "/home/ums.com/application/">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

7 访问控制

# All requests go to Tomcat by default

JkMount /app app

#不通过tomcat

# Serve html, jpg and gif etc using Apache
#JkUnMount /app/*.css app

 

配置中遇到的问题:

1 安装apache后缺少mod_jk.so 文件 从其他地方下载了一个

2目录文件访问我设置为可以目录访问,导致jsp文件在浏览器中以源码显示

3使用http访问8080 正常访问,添加apache后以80端口访问失败,原因是 worker.seo1.port=8009此处应该配置ajp的端口8009

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading