载入中。。。 'S bLog
 
载入中。。。
 
载入中。。。
载入中。。。
载入中。。。
载入中。。。
载入中。。。
 
填写您的邮件地址,订阅我们的精彩内容:


 
一个IP对应多个域名/多个主机的解决办法(WAMP或LAMP)
[ 2010/11/26 17:04:00 | By: 梦翔儿 ]
 

前面梦翔儿搞定了:

一个IP对应多个域名的解决办法(WAMP+传统虚拟主机)

一个IP对应多个域名的解决办法(IIS+传统虚拟主机)

当然还有一个方案是用端口映射PortMap软件,这个方案需要出现http://www.ubuntu01.com:8989这样的形式,显然是很不符合大家习惯的。

如果是 一个IP对应多个域名/多个主机,同一80端口,怎么办呢?

模式大概是这样:

访问测试用外网电脑,IP为192.168.2.80,去访问同在外网的81:

www.ubuntu01.com 指向到一个主机192.168.2.81

192.168.2.81 这台电脑上装了两个虚拟主机或VPS

01.ubuntu01.com 指向到主机192.168.2.81的一个虚拟机/vps 其子网IP为192.168.88.135

02.ubuntu01.com 指向到主机192.168.2.81的一个虚拟机/vps 其子网IP为192.168.88.136

解决的思路大概如下:

先按原方法建好域名服务两个域名(www.ubuntu01.com、www.ubuntu01.com)同时解析指向到外网ip 192.168.2.81 上,在如果用路由器,可以用dmz将80口映射到内网的一台安装apache的服务器(ip地址192.168.2.81)上,由这台apache服务器根据域名分别反向代理到其内部的两个虚拟机/vps上。
两台虚拟机/vps的设置没有什么特别的,这里不多说了,主要说说这台反向代理的apache服务器即192.168.2.81的设置

装好wamp或lamp

--------------

因为我是在家里的局域网中测试环境,所以没有设dsn,直接用host,正常应该用域名解析来完成:

192.168.2.80的host

127.0.0.1  localhost
192.168.2.81  www.ubuntu01.com
192.168.2.81  01.ubuntu01.com
192.168.2.81  02.ubuntu01.com

就是说将三个域名都绑在2.81的主机上

-----------

192.168.2.81的host

127.0.0.1  localhost
192.168.2.81  www.ubuntu01.com
192.168.88.135  01.ubuntu01.com
192.168.88.136  02.ubuntu01.com

就是说,把两个子域名,绑定到两个虚拟机/vps上,真实环境也要设host,windows下和linux设置方法差不多

--------------

打开httpd.conf,找到以下几个Module并将其启用(如果没有,可以自行添加)

mod_proxy.so(module_proxy)
mod_proxy_http.so(module_proxy_http)

mod_cache.so(module_cache)
mod_disk_cache.so(module_disk_cache)
 
就是把对应句前面的#去掉,也可以在wamp的菜单中选中也行
 
#主机名是唯一的
ServerName 192.168.2.81:80
#虚拟机也是
NameVirtualHost 192.168.2.81
<VirtualHost 192.168.2.81>
ServerAdmin ubuntu01@www.ubuntu01.com
DocumentRoot d:/wamp/www/
ServerName 192.168.2.81
</VirtualHost>
#使用反向代理将192.168.2.81和反向域名http://01.ubuntu01.com 连一起
<VirtualHost 192.168.2.81>
ServerName http://01.ubuntu01.com
ProxyPass / http://01.ubuntu01.com
ProxyPassReverse / http://01.ubuntu01.com
</VirtualHost>
#使用反向代理将192.168.2.81和反向域名http://02.ubuntu01.com 连一起
<VirtualHost 192.168.2.81>
ServerName http://02.ubuntu01.com
ProxyPass / http://02.ubuntu01.com
ProxyPassReverse / http://02.ubuntu01.com
</VirtualHost>
 
---------
如果虚拟机/vps是IIS,有时出现Proxy Error,加入以下两条解决问题:
 
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
 
ok,重启apache ,把81主机注销一下最好。
 
==============
Squid,网上还有方案用这个反向代理,估计原理差不多,就不试了。
 
真实服务器环境就是把192.168.2.81设成公网IP就行了,两虚拟机用内网IP,其它都一样。。。
 
梦翔儿忙了半个下午,终于在实验环境中搞定了,很高兴,不是吗?回头到实验室去真实操作一下!
 
 
 
 
  • 标签:虚拟主机 
  • 发表评论:
    载入中。。。

     
     
     

    梦翔儿网站 梦飞翔的地方 http://www.dreamflier.net
    中华人民共和国信息产业部TCP/IP系统 备案序号:辽ICP备09000550号

    Powered by Oblog.