apache整合tomcat(一)
博客专区 > ganlm 的博客 > 博客详情
apache整合tomcat(一)
ganlm 发表于3年前
apache整合tomcat(一)
  • 发表于 3年前
  • 阅读 34
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 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


配置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

共有 人打赏支持
粉丝 0
博文 4
码字总数 2402
×
ganlm
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: