设为首页 收藏本站
查看: 537|回复: 0

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

[复制链接]

尚未签到

发表于 2017-1-15 06:48:39 | 显示全部楼层 |阅读模式
  由于可能我们做网站的时候经常想把静态文件和动态文件相分离,比如将帮助页面的静态页面放到一些文件夹下,而不是放在工程,同时还有一些人希望能够实现伪静态功能,
下面我介绍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):
[html] view plaincopyprint?


  • NameVirtualHost *:80  
  • ####以下是代理的模式,即www.soogifts.com这个域名下的所有连接都会跳到tomcat服务器下去解析(ajp://127.0.0.1:8009/)##############  
  • <VirtualHost *:80>  
  •   ServerName www.soogifts.com  
  •     ServerAlias soogifts.com  
  •     DocumentRoot "D:/www/ROOT/"  
  •   ServerAdmin service@soogifts.com  
  •     ErrorLog "logs/www.soogifts.com-error_log"  
  •     CustomLog "logs/www.soogifts.com-access_log" common  
  •       
  •     ProxyPass / ajp://127.0.0.1:8009/  
  •     ProxyPassReverse / ajp://127.0.0.1:8009/  
  • </VirtualHost>  
  • ####以下是静态资源的转发,image.soogifts.com这个域名下的所有内容都会到D:/www/soogiftsImg/这个目录下去找##############  
  • <VirtualHost *:80>  
  •     ServerName image.soogifts.com  
  •     DocumentRoot "D:/www/soogiftsImg/"  
  •     ServerAdmin service@soogifts.com  
  •     ErrorLog "logs/image.soogifts.com-error_log"  
  •     CustomLog "logs/image.soogifts.com-access_log" common  
  • </VirtualHost>  
  •   
  • ##############以下是包含rewrite规则的写法,rewrite规则在rewrite-talentonline.conf这个文件当中######################  
  • <VirtualHost *:80>  
  •     ServerName www.thetalentonline.com  
  •     DirectoryIndex index.shtml index.html  
  •     DocumentRoot "D:/develop/ws_dream/talent/WebRoot/html"  
  •   ServerAdmin service@thetalentonline.com  
  •     ErrorLog "logs/www.thetalentonline.com-error_log"  
  •     CustomLog "logs/www.thetalentonline.com-access_log" common  
  •     Include conf/extra/rewrite-talentonline.conf  
  • </VirtualHost>  

  NameVirtualHost *:80####以下是代理的模式,即www.soogifts.com这个域名下的所有连接都会跳到tomcat服务器下去解析(ajp://127.0.0.1:8009/)##############<VirtualHost *:80>ServerName www.soogifts.comServerAlias soogifts.comDocumentRoot "D:/www/ROOT/"ServerAdmin service@soogifts.comErrorLog "logs/www.soogifts.com-error_log"CustomLog "logs/www.soogifts.com-access_log" commonProxyPass / ajp://127.0.0.1:8009/ProxyPassReverse / ajp://127.0.0.1:8009/</VirtualHost>####以下是静态资源的转发,image.soogifts.com这个域名下的所有内容都会到D:/www/soogiftsImg/这个目录下去找##############<VirtualHost *:80>ServerName image.soogifts.comDocumentRoot "D:/www/soogiftsImg/"ServerAdmin service@soogifts.comErrorLog "logs/image.soogifts.com-error_log"CustomLog "logs/image.soogifts.com-access_log" common</VirtualHost>##############以下是包含rewrite规则的写法,rewrite规则在rewrite-talentonline.conf这个文件当中######################<VirtualHost *:80>ServerName www.thetalentonline.comDirectoryIndex index.shtml index.htmlDocumentRoot "D:/develop/ws_dream/talent/WebRoot/html"ServerAdmin service@thetalentonline.comErrorLog "logs/www.thetalentonline.com-error_log"CustomLog "logs/www.thetalentonline.com-access_log" commonInclude conf/extra/rewrite-talentonline.conf</VirtualHost>
  rewrite-talentonline.conf(D:\Apache2.2\conf\extra\rewrite-talentonline.conf):
[html] view plaincopyprint?


  • RewriteEngine on  
  • RewriteLog "logs/www.talentonline.cn-rewrite.log"  
  • RewriteLogLevel 9  
  • RewriteRule ^/([\S]+)\.jsp$ ajp://127.0.0.1:8009/$1\.jsp [P,L]  
  • RewriteRule ^/([\S]+)\.jsp;jsessionid=([\S]+)$ ajp://127.0.0.1:8009/$1\.jsp;jsessionid=$2 [P,L]  
  • 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]  
  • RewriteRule /(\S+)\.ico$ ajp://127.0.0.1:8009/$1\.ico [P]  
  • RewriteRule /(\S+)\.png$ ajp://127.0.0.1:8009/$1\.png [P]  

  RewriteEngine onRewriteLog "logs/www.talentonline.cn-rewrite.log"RewriteLogLevel 9RewriteRule ^/([\S]+)\.jsp$ ajp://127.0.0.1:8009/$1\.jsp [P,L]RewriteRule ^/([\S]+)\.jsp;jsessionid=([\S]+)$ ajp://127.0.0.1:8009/$1\.jsp;jsessionid=$2 [P,L]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]RewriteRule /(\S+)\.ico$ ajp://127.0.0.1:8009/$1\.ico [P]RewriteRule /(\S+)\.png$ ajp://127.0.0.1:8009/$1\.png [P]
当然,上面的域名我并没有到网上去申请来,然后通过dns解析到我的机器,只需要修改一下本机的一个文件,即可将你想要的域名都指向本机(只对本机有效),这个文件的地址是:C:\Windows\System32\drivers\etc\HOSTS
  以下是我的hosts文件的配置,供大家参考:
[html] view plaincopyprint?


  • #ip                域名  
  • 127.0.0.1           localhost  
  • 127.0.0.1           www.soogifts.com  
  • 127.0.0.1           image.soogifts.com  
  • 127.0.0.1           www.thetalentonline.com  

  #ip                域名127.0.0.1           localhost127.0.0.1           www.soogifts.com127.0.0.1           image.soogifts.com127.0.0.1           www.thetalentonline.com

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328460-1-1.html 上篇帖子: 通向架构师的道路(第八天)之weblogic与apache的整合与调优 . 下篇帖子: 使用Eclipse3.2.1+STP.0.4.0+Apache Tuscany开发SCA的Java组件(2)代码篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表