您的位置:首页 > 理论基础 > 计算机网络

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

2015-09-19 00:51 609 查看
今天部署网站时,用户突然说他们只有一台服务器,一个公网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次,这里吐下槽,没验证过的东西放到网上,真是害人啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: