Apache Http Server 解决不同域名共用服务器80端口问题

今天部署网站时,用户突然说他们只有一台服务器,一个公网IP,而且现在服务器上已经有一个发布中的网站(显然80端口已被占用),让我们想想办法怎么样才能部署我们的项目到他们服务器上,而且使用同一台服务器,同一个公网IP,第一次遇到这种需求,开始觉得肯定实现不了,但后来百度下,竟然真有方法解决这种问题,强大的代理,发现代理可以实现nginx,Apache Http Server,或者直接在IIS上进行修改配置(不通用,不考虑),大体看了下,感觉Apache Http Server使用起来非常简单,就决定使用它啦,首先在本地进行了一次模拟环境测试,过程中也遇到了一些问题,现在把配置过程记录下来,供遇到同样问题的朋友参考。

一、前期准备:

1、安装Apache Http Server:

我下载的是 httpd-2.2.25-win32-x86-no_ssl.msi(很简单,百度搜下Apache Http Server)

2、俩个模拟服务器,我这边使用的是IIS一个、和tomcat一个(Windows下IIS是现成的,而且可以模拟不同服务器,虽然没啥意思,嘿嘿)

3、修改HOST文件 (C:\Windows\System32\drivers\etc\HOSTS)

增加俩项(模拟不同域名)
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.com

二、修改配置文件

现在准备工作就算完成啦,现在开始进行修改Apache Http Server配置文件(httpd.conf、httpd-vhosts.conf)

1、httpd.conf 位置:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf

将下面五处的注释去掉

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
Include conf/extra/httpd-vhosts.conf

2、httpd-vhosts.conf 位置:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf

增加以下配置

> <VirtualHost *:80>
> ProxyPreserveHost On
> ServerAdmin aaa@qq.com
> ServerName www.bbb.com
> ProxyPass / http://www.bbb.com:8084/
> ProxyPassReverse / http://www.bbb.com:8084/
> SetEnv force-proxy-request-1.0.1
> SetEnv proxy-nokeepalive 1 
> </VirtualHost>
> > <VirtualHost *:80>
> ProxyPreserveHost On
> ServerAdmin bbb@qq.com
> ServerName www.aaa.com
> ProxyPass / http://www.aaa.com:8083/
> ProxyPassReverse / http://www.aaa.com:8083/
> SetEnv force-proxy-request-1.0.1
> SetEnv proxy-nokeepalive 1 
> </VirtualHost>

下面将IIS服务器和tomcat服务都启动起来,从上面的配置来看,可以看出我的俩个服务的端口分别为8083和8084
运行起来之后,通过访问http://www.aaa.com:8083http://www.bbb.com:8084 俩个网站访问正常,配置结束

看起来确实比较简单,但有几个地方需求注意的
1、IIS服务器默认占用了80端口,安装Apache Http Server时如果启动不成功,请修改IIS服务器的端口为其他端口,我这里使用的是8084
2、ProxyPass / http://www.aaa.com:8083/ 这句后面一定要加上“/”,这个问题我找了一天才解决,如果不加上的话,即使网站能够访问到,也会显示不正常,会报类似的错误

[Mon Jul 20 16:34:49 2015] [error] [client 127.0.0.1] proxy: DNS
lookup failure for: 127.0.0.1:8084iis-85.png returned by /iis-85.png,
referer: http://www.aaa.com/

以上就是我使用的Apache Http Server代理进行设置80端口共用的配置,反正我是正常运行啦,在过程中也看了网上的例子,有些是明显错误,根本跑不起来,而且同一篇文章被转发了N次,这里吐下槽,没验证过的东西放到网上,真是害人啊!

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/1051122/blog/508457

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值