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

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

1、前期准备:tomcat

一、安装Apache Http Server:服务器

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

二、俩个模拟服务器,我这边使用的是IIS一个、和tomcat一个(Windows下IIS是现成的,并且能够模拟不一样服务器,虽然没啥意思,嘿嘿)测试

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

增长俩项(模拟不一样域名)
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.comspa

2、修改配置文件代理

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

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

将下面五处的注释去掉

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

二、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 俩个网站访问正常,配置结束

看起来确实比较简单,但有几个地方需求注意的
一、IIS服务器默认占用了80端口,安装Apache Http Server时若是启动不成功,请修改IIS服务器的端口为其余端口,我这里使用的是8084
二、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次,这里吐下槽,没验证过的东西放到网上,真是害人啊!

相关文章
相关标签/搜索