如何做到部署一个Roller实例来实现多个网站?

背景:
你有很多想法,每个想法都是一个独立域名的网站,而你的资源(机器性能:CPU、内存、磁盘)却有限!怎么办?

原理:
通过减少部署App实例来节约资源。

前提条件:
1、你要有一个固定的IP;
2、你有多个域名指向你的固定IP,比如a.com、b.com、c.com

要解决的问题:
1、你的App必须支持类似博客或者cms的功能。
显然roller是没问题的,类似的App比如WordPress
2、URL转换
URL映射是最关键的部分,需要将roller的博客url映射为域名的url,比如:http://ip/a/映射为http://www.a.com.

这里,使用apache  +  ajp +  tomcat里实现。本文假设你知道如何配置这三个系统的关系。
首先,在roller中创建三个博客,分别为a、b、c

其次,在apache中配置虚拟主机,如下:
<VirtualHost *:80>
ServerName www.a.com
ServerAlias a.com
ProxyPass / ajp://127.0.0.1:8009/a/
</VirtualHost>

<VirtualHost *:80>
ServerName www.b.com
ServerAlias b.com
ProxyPass / ajp://127.0.0.1:8009/b/
</VirtualHost>

<VirtualHost *:80>
ServerName www.c.com
ServerAlias c.com
ProxyPass / ajp://127.0.0.1:8009/c/
</VirtualHost>


按照以上配置后,在浏览器中可以通过http://www.a.com访问到博客a的首页。
最后,由于是长URL转为短URL,所以在roller中一些url相关的类需要修改一下,另外写一个文章描述。

3、其他
favicon.ico和robots.txt需要放在网站的根目录下,可以用一个servlet来实现,再述。

猜你喜欢

转载自devroller2.iteye.com/blog/1880072