IIS+Apache同时运行ASP和PHP

前几天公司的VPS上要放个ASP网站,本以为小事一桩,遂风风火火地在WAMP旁边又弄出来个IIS的快捷方式。一路过关斩将终于在IIS上建了个以域名为主机头的网站,端口当然是默认且大名鼎鼎的80,结果居然是“(停止)”!


IIS建网站80端口冲突

我顿觉一阵天旋地转,说时迟那时快,最后关头桌子以迅雷不及掩耳之势稳稳地搀住了我(谢谢),咳咳。定了定神之后,我仔细提着腮帮子沉思了半日:这货到底是硬邦邦的微软开发的,虽说同是80端口,但我好歹用主机名把你们俩拉开了呀,何故还是容不下Apache?又拉着额头思虑了半晌,终于皇天不负有心人,我果断双击桌面上的红黄绿蓝小圆球,不远万里来到了位于中国香港的Google.hk。在我的威逼利诱下,终于得到了解决问题的办法。

好,废话不再多说,赶紧把这来之不易的答案给大家双手奉上。

原来,还真是80端口冲突了。虽然在Apache或者IIS上可以建立多个80端口的网站(不同域名),但可以简单滴理解为一个WEB服务器软件可以使用一个端口处理多个网站,但多个WEB服务器软件不能共用一个端口处理多个网站,就好像一个司机可以开一辆车接多个乘客,但多个司机不能同时开一辆车接客(乘客)一样。所以,只能让IIS委屈一下,给你个8000端口吧,唉,谁让我这么偏袒开源软件呢。

问题又来了,我总不能让大家输入http://www.LsevenTT.com/来访问我的网站吧,所以必须还得解决一个问题:让大家直接输入域名就可以访问到这个ASP网站。只能从apache上着手了,因为80端口被他霸占着呢。当然,这个问题Google也告诉我了,用Apache的代理功能,简单地说就是当我访问apache的80端口的时候他可以把我的请求转发到另一个网址,然后把结果再回传给我,对我来说,我根本不知道apache回去找别人要东西,所以就不会给访问这个网站的用户造成影响了。具体操作如下:

  1. 修改Apache的配置文件httpd.conf开启两个模块

    1 LoadModule proxy_module modules/mod_proxy.so
    2 LoadModule proxy_http_module modules/mod_proxy_http.so
  2. (在httpd-vhosts.conf中)新增一个指向IIS上的ASP网站的VirtualHost,切记:ProxyRequests Off,否则你的服务器将成为某些小朋友的免费代理服务器。这可是我对照apache日志摸索了半天才搞出来的,说来也巧,我刚开启代理就有人来跳了。

    01 <VirtualHost *:80>
    02       <IfModule mod_proxy.c>
    03          ProxyRequests Off
    04          <Proxy *>
    05               Order deny,allow
    06               Allow from all
    07          </Proxy>
    08      </IfModule>
    09      ServerName LsevenTT.com
    10      ServerAlias www.LsevenTT.com
    11      ProxyPass / http://localhost:8000/
    12      ProxyPassReverse / http://localhost:8000/
    13  </VirtualHost>
  3. OK,重启Apache,再次双击彩色小球输入ASP网站的域名,apache如约奉上了去找IIS借来的ASP网站。

好了,太阳也快下山了,今天就晒到这里,再次感谢大家的捧场,谢谢,咱们下期节目同一时间再见。再见

你可能感兴趣的:(IIS+Apache同时运行ASP和PHP)