`

apache和tomcat相结合使用实现伪静态,同时把静态文件从工程里分离开

 
阅读更多

由于可能我们做网站的时候经常想把静态文件和动态文件相分离,比如将帮助页面的静态页面放到一些文件夹下,而不是放在工程,同时还有一些人希望能够实现伪静态功能,

下面我介绍tomcat和apache相结合,实现伪静态,静态文件和动态文件相分离的配置:

一、 首先安装tomcat6.0,tomcat5.5也可以,安装好了以后进入 安装tomcat路径/conf文件夹,编辑该文件夹下的文件server.xml。
找到
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
确定你待会ajp跳转时的tomcat端口号。我的tomcat ajp协议的端口是8009。
二、安装apache2.2,我之前试过apache2.0,发现apache2.0没有ajp跳转的功能,只能用proxy代理访问。
我的apache2.0原来的访问代码如下:
ProxyPass / http://127.0.0.1:8099/
ProxyPassReverse / http://127.0.0.1:8099/
这样跳转的缺点就是到tomcat容器时java获得的连接是127.0.0.1:8099,而不是域名。还有报错时会暴露出tomcat的访问端口,对安全造成一定的影响。
回到主题,安装完apache2.2以后。进入安装apache的路径/conf文件夹下,

三、配置http.conf文件

编辑httpd.conf文件:

 1 找到以下两行,将前面的#号去掉,这个是加载ajp跳转的功能
 #LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
2 找到以下代码,将前面的#去掉,这个是加载rewrite模块的功能
#LoadModule rewrite_module modules/mod_rewrite.so
3 找到以下代码,将前面的#去掉:
#Include conf/extra/httpd-vhosts.conf

 

四、配置httpd-vhosts文件

然后打开安装apache的路径/conf/extra文件夹,编辑httpd-vhosts.conf文件
在文件中加入你的域名,比如:
<VirtualHost *:80>
    ServerName www.域名.com
    DocumentRoot "D:/www/域名"
  ServerAdmin service@域名.com
    ErrorLog "logs/www.域名.com-error_log"
    CustomLog "logs/www.域名.com-access_log" common
    Include conf/extra/rewrite-域名.conf
</VirtualHost>
ServerName是你的域名
DocumentRoot是你的静态文件存放的路径。
然后在这个文件夹下创建一个文件叫rewrite-域名.conf,编辑这个文件写上你的跳转规则:
如:
RewriteEngine on
RewriteLog "logs/www.talentonline.com-rewrite.log"
RewriteLogLevel 9
RewriteRule ^/([/S]+)/.do$ ajp://127.0.0.1:8009/$1/.do [P,L]
RewriteRule ^/([/S]+)/.do;jsessionid=([/S]+)$ ajp://127.0.0.1:8009/$1/.do;jsessionid=$2 [P,L]

RewriteRule /(/S+)/.js$ ajp://127.0.0.1:8009/$1/.js [P]
RewriteRule /(/S+)/.css$ ajp://127.0.0.1:8009/$1/.css [P]
RewriteRule /(/S+)/.gif$ ajp://127.0.0.1:8009/$1/.gif [P]
RewriteRule /(/S+)/.jpg$ ajp://127.0.0.1:8009/$1/.jpg [P]
##以下你可以写你自己的rewrite跳转规则
这样就可以实现静态页面从工程分离出去,放到单独的文件夹下,这样不但可以缩小工程的大小,还能加快访问速度。
赶快试一下吧。

五、附

 以下附上我的httpd-vhosts.conf和rewrite-talentonline.conf代码,供大家参考:

httpd-vhosts.conf(D:\Apache2.2\conf\extra\httpd-vhosts.conf):

 

  1. NameVirtualHost *:80  
  2. ####以下是代理的模式,即www.soogifts.com这个域名下的所有连接都会跳到tomcat服务器下去解析(ajp://127.0.0.1:8009/)##############  
  3. <VirtualHost *:80>  
  4.   ServerName www.soogifts.com  
  5.     ServerAlias soogifts.com  
  6.     DocumentRoot "D:/www/ROOT/"  
  7.   ServerAdmin service@soogifts.com  
  8.     ErrorLog "logs/www.soogifts.com-error_log"  
  9.     CustomLog "logs/www.soogifts.com-access_log" common  
  10.       
  11.     ProxyPass / ajp://127.0.0.1:8009/  
  12.     ProxyPassReverse / ajp://127.0.0.1:8009/  
  13. </VirtualHost>  
  14. ####以下是静态资源的转发,image.soogifts.com这个域名下的所有内容都会到D:/www/soogiftsImg/这个目录下去找##############  
  15. <VirtualHost *:80>  
  16.     ServerName image.soogifts.com  
  17.     DocumentRoot "D:/www/soogiftsImg/"  
  18.     ServerAdmin service@soogifts.com  
  19.     ErrorLog "logs/image.soogifts.com-error_log"  
  20.     CustomLog "logs/image.soogifts.com-access_log" common  
  21. </VirtualHost>  
  22.   
  23. ##############以下是包含rewrite规则的写法,rewrite规则在rewrite-talentonline.conf这个文件当中######################  
  24. <VirtualHost *:80>  
  25.     ServerName www.thetalentonline.com  
  26.     DirectoryIndex index.shtml index.html  
  27.     DocumentRoot "D:/develop/ws_dream/talent/WebRoot/html"  
  28.   ServerAdmin service@thetalentonline.com  
  29.     ErrorLog "logs/www.thetalentonline.com-error_log"  
  30.     CustomLog "logs/www.thetalentonline.com-access_log" common  
  31.     Include conf/extra/rewrite-talentonline.conf  
  32. </VirtualHost>  

rewrite-talentonline.conf(D:\Apache2.2\conf\extra\rewrite-talentonline.conf):

 

  1. RewriteEngine on  
  2. RewriteLog "logs/www.talentonline.cn-rewrite.log"  
  3. RewriteLogLevel 9  
  4. RewriteRule ^/([\S]+)\.jsp$ ajp://127.0.0.1:8009/$1\.jsp [P,L]  
  5. RewriteRule ^/([\S]+)\.jsp;jsessionid=([\S]+)$ ajp://127.0.0.1:8009/$1\.jsp;jsessionid=$2 [P,L]  
  6. RewriteRule ^/([\S]+)\.do$ ajp://127.0.0.1:8009/$1\.do [P,L]  
  7. RewriteRule ^/([\S]+)\.do;jsessionid=([\S]+)$ ajp://127.0.0.1:8009/$1\.do;jsessionid=$2 [P,L]  
  8.   
  9. RewriteRule /(\S+)\.js$ ajp://127.0.0.1:8009/$1\.js [P]  
  10. RewriteRule /(\S+)\.css$ ajp://127.0.0.1:8009/$1\.css [P]  
  11. RewriteRule /(\S+)\.gif$ ajp://127.0.0.1:8009/$1\.gif [P]  
  12. RewriteRule /(\S+)\.jpg$ ajp://127.0.0.1:8009/$1\.jpg [P]  
  13. RewriteRule /(\S+)\.ico$ ajp://127.0.0.1:8009/$1\.ico [P]  
  14. RewriteRule /(\S+)\.png$ ajp://127.0.0.1:8009/$1\.png [P]  


当然,上面的域名我并没有到网上去申请来,然后通过dns解析到我的机器,只需要修改一下本机的一个文件,即可将你想要的域名都指向本机(只对本机有效),这个文件的地址是:C:\Windows\System32\drivers\etc\HOSTS

 

以下是我的hosts文件的配置,供大家参考:

 

  1. #ip                域名  
  2. 127.0.0.1           localhost  
  3. 127.0.0.1           www.soogifts.com  
  4. 127.0.0.1           image.soogifts.com  
  5. 127.0.0.1           www.thetalentonline.com  

分享到:
评论

相关推荐

    Apache与Tomcat集群,伪静态,负载均衡

    在ApacheTomcat整合教程.doc文件中,详细步骤和配置示例应会涵盖以上内容,包括Apache和Tomcat的安装指南、模块的启用方法、配置文件的编辑技巧以及负载均衡策略的设置。通过这份文档,你可以逐步实践并掌握这些技术...

    windows下整合apache和tomcat服务器的方法

    这种方式充分利用了Apache处理静态文件的效率和Tomcat对动态内容的处理能力。 **整合步骤:** 1. **配置`workers.properties`文件:** `workers.properties`文件定义了Apache和Tomcat之间的连接设置。在这个文件...

    apache和tomcat的区别

    在使用Apache和Tomcat时,我们可以使用它们的组合来处理静态和动态网页。例如,我们可以使用Apache来处理静态网页,而使用Tomcat来处理JSP、Servlet等动态网页。在这种情况下,Apache只是作为一个转发,对JSP的处理...

    apache和tomcat整合配置文件

    在Apache与Tomcat整合中,我们通常使用mod_jk或者mod_proxy_ajp模块来实现通信,workers.properties就是定义这些模块如何连接到Tomcat的地方。 - 文件中需要创建一个或多个worker,每个worker代表一个Tomcat实例。...

    apache-tomcat-6.0.18

    Apache Tomcat 6.0.18 是一个广泛使用的开源软件,主要作为Java Servlet和JavaServer Pages (JSP) 的容器。它实现了Java EE的Web应用程序部署规范,是开发和运行Java Web应用的重要平台。Tomcat是Apache软件基金会的...

    apache+tomcat配置文件

    将Apache与Tomcat集成可以实现高效且灵活的Web服务环境,特别是对于需要处理动态内容和静态内容混合的网站。 在集群环境中,配置Apache和Tomcat是为了提高可用性和可扩展性。这种配置通常涉及到负载均衡、故障转移...

    jsp伪静态,javaweb实现伪静态

    6. **实例分析**:在提供的“jsp伪静态-实现”压缩包中,可能包含了具体的代码示例,如Servlet的实现、web.xml的配置以及相关的HTML和JSP文件。通过这些实例,你可以了解到如何在实际项目中应用上述理论知识。 7. *...

    apache与tomcat负载集群的实现

    在构建高性能、高可用性的Web服务时,Apache与Tomcat的组合使用是非常常见的策略,尤其在需要实现负载平衡和集群的场景下。Apache通常作为前端服务器处理静态内容,而Tomcat则作为后端应用服务器处理动态请求。接...

    整合apache和tomcat构建Web服务器.docx

    功能非常强大,从连接器的实现原理看,用http-proxy模块实现也是很自然的事情,只需打开Tomcat的http功能,然后用Apache的proxy代理功能将动态请求交给Tomcat处理,而静态数据交给Apache自身就可以了。 proxy-ajp...

    Apache和Tomcat的集成

    Apache和Tomcat的集成是Web服务器领域中非常重要的一个知识点,本节我们将详细介绍Apache和Tomcat的集成过程,从整合Apache和Tomcat构建一个Java/JSP运行平台,详细介绍Web服务器的搭建过程。 一、Apache和Tomcat的...

    apache-tomcat-7.0.75.zip

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和...

    windows下整合apache和tomcat

    这种配置可以优化网站的性能,因为静态资源(如图片、CSS和JavaScript文件)由Apache直接提供,而动态内容的生成和执行则交由专门设计用于Java应用的Tomcat来完成。 首先,Apache和Tomcat的整合通常依赖于Apache的...

    Apache和Tomcat整合配置实现网站目录搭建

    这个配置过程使得Apache和Tomcat能够协同工作,提高了系统性能,同时实现了动态和静态内容的分离,为网站目录搭建提供了基础架构。如果你需要管理多个应用或网站,只需在Apache的虚拟主机配置中添加更多条目即可。...

    jsp web 实现伪静态源码

    "标签"中的"jsp 伪静态 java伪静态"进一步强调了这是关于JSP和Java环境下的伪静态实现。在Java中,可以使用Servlet Filter来拦截请求,解析URL路径,然后根据路径信息动态生成内容。这种方式不仅适用于JSP,也适用于...

    apache-tomcat-7.0.79.zip

    Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。这个"apache-tomcat-7.0.79.zip"压缩包包含了Apache Tomcat的7.0.79版本,这是一个稳定且广泛使用的版本。...

    apache2与tomcat整合

    Apache2与Tomcat整合是为了实现更高效的Web服务部署,特别是在处理高并发和负载均衡时。Apache作为成熟的HTTP服务器,常被用作前端服务器,负责静态资源的处理和动态请求的分发,而Tomcat作为Java应用服务器,主要...

Global site tag (gtag.js) - Google Analytics