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

[经验分享] 开发环境中的Apache

[复制链接]

尚未签到

发表于 2017-1-1 11:01:26 | 显示全部楼层 |阅读模式
  假设:
  项目需要做 URL Rewrite,不想用 UrlRewriteFilter 集成到应用程序里去,于是就选用一些 Web Server 来做,后来选了 Apache,但是又懒 DSC0000.gif ,不想每台开发机器都去做配置,因为确实很麻烦,规则变了又要每台开发机器都去同步,如果是 Linux 还好一点,可以 mount 一下。
  有四台开发机器,IP 分别为:
  192.168.1.10(Apache)
  192.168.1.20(A同事)
  192.168.1.30(B同事)
  192.168.1.40(C同事)。
  在192.168.1.10上部署一个 Apache,做 Rewrite 规则,然后统一分发到另外三台机器上。可是每位同事的开发机器上的项目的版本有可能不一致,而且还要根据各自手头上的版本来调试。
  也就是说:A同事启动了应用程序,请求192.168.1.10的 Apache,享受了一了Rewrite 规则 DSC0001.gif ,然后被分发回A同事的 Tomcat
  既然这样,每位同事都要弄个标识才行,端口是不错的选择:
  A同事:1020
  B同事:1030
  C同事:1040
  OK,标识分好了,就开始做配置了,Apache 的版本采用2.2,结合几个Module:
  mod_rewrite
  mod_proxy
  mod_proxy_ajp/mod_proxy_http
  在 make/make install Apache 前的 configure 加入几个参数:

./configure --enable-rewrite --enable-proxy --enable-proxy-ajp --enable-proxy-http
  到 httpd.conf 了,当然少不了的是把 Module 们 load 进来:

LoadModule proxy_module modules/mod_proxy.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
  把几位同事对应的端口也配进去:

#A同事
Listen 1020
#B同事
Listen 1030
#C同事
Listen 1040
  既然每位同事都有一台开发机器,那么就给他们每人多配一台虚拟机器吧 DSC0002.gif

#A同事
<VirtualHost *:1020></VirtualHost>
#B同事
<VirtualHost *:1030></VirtualHost>
#C同事
<VirtualHost *:1040></VirtualHost>
  差点忘了proxy,Oops DSC0003.gif 。都配上 mod_proxy_ajp 吧,免得麻烦。
  在这个时候,C同事的孩子气来了,他说他一定要 mod_proxy_http,。。。。。

#顺被带上RewriteRule
#A同事
<VirtualHost *:1020>
ProxyPass / ajp://192.168.1.20:8009/
ProxyPassReverse / ajp://192.168.1.20:8009/
RewriteEngine On
#RewriteRule... ...
</VirtualHost>
#B同事
<VirtualHost *:1030>
ProxyPass / ajp://192.168.1.30:8009/
ProxyPassReverse / ajp://192.168.1.30:8009/
RewriteEngine On
#RewriteRule... ...
</VirtualHost>
#C同事
<VirtualHost *:1040>
ProxyPass / http://192.168.1.40:8080/
ProxyPassReverse / http://192.168.1.40:8080/
RewriteEngine On
#RewriteRule... ...
</VirtualHost>
  个人感觉 mod_proxy 的风格比 mod_jk 好。 但是有一点很不爽,如果我想 /topics 目录下的 html 都由 Apache 解析,jsp都要由 Tomcat 解析。开始想着 “ProxyPass /topics/*.html !” 就行,后来屡试不爽,…#&¥@#×(&%×,竟然不支持通配符。
  在 Tomcat 的 server.xml 里,AJP代理的,就对应回 AJP Connector 的 port,Http代理的,就对应回 Http Connector 的 port,另外,如果想在程序里用 request.getServerName() 取到代理的 Name、用request.getServerPort() 取到代理的 Port,就在 Connector 里配置 proxyName 和 proxyPort 吧。
  OK,可以测试一下了:
  A同事在地址栏敲入:http://192.168.1.10:1020
  B同事在地址栏敲入:http://192.168.1.10:1030
  C同事在地址栏敲入:http://192.168.1.10:1040
各取其需。。。。。。。可以写 Rewrite Rule 去了.. DSC0004.gif

运维网声明 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-322378-1-1.html 上篇帖子: Apache ActiveMQ教程(五) 下篇帖子: apache php 模块添加
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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