原来为了做这个功能,我用python写了一堆脚本,去自动管理nginx的配置文件,结果还是不理想。频繁重写配置文件,频繁重启,总会出现点问题。
在nginx的0.8.*下,发现了这样的功能:http://wiki.nginx.org/NginxHttpCoreModule
Since nginx 0.8.25 named captures can be used in server_name:
server {
server_name ~^(www\.)?(?.+)$;
location / {
root /sites/$domain;
}
}
大喜,于是乎做出如下配置,实现了nginx下自动虚拟主机的功能:
测试通过。
我的开源虚拟主机管理系统nginx版本指日可待。
]]>此协议为七层应用协议,跟http ftp是平级的,使用socket进行通讯,可以兼容php、python、java、c等语言。
协议开源,使用点对点信息校验,满足普通应用。
协议模拟tcp封包过程,进行数据封装。
协议内容:(伪代码)
协议包包括了协议头,版本,时间戳,包长度、签名(防止数据篡改和伪造),数据。基本能满足应用。
控制端数据打包发送后,受控端只需返回接受成功即可,以便客户端及时作出判断。
底下针对此包做PHP版本的封包和python的解包部分。
注释:原来使用问答的方式进行通讯,需要多次数据的应答,而此次的修改只需一次即可完成,而打包封包在一端完成,这样对网络稳定性的依赖就会降低。
]]>我们常见的产品,比如虚拟主机(空间),VPS,服务器合租等。这类产品目前在市场上发展比较成熟,而且随着互联网发展,这类产品市场前景逐渐看好。
这点,从万网的发展路线就可以看出,中小企业越来越重视自己信息化的建设,而从百度的销售业绩也能看出,企业的投入逐渐从传统媒体转向了互联网。另外,各大IDC机房内,也有相当的托管机器是用在中小网站上。
而这些产品的基础构建,管理,对于不管是企业还是个人,都是一个问题。对于国内做虚拟主机产品的老大们,万网,新网都有自己的管理系统,而对于一些小型用户,一些开源的管理软件足矣,无非是增加点人力。
目前虚拟主机应用主流平台就是windows,linux,freebsd,windows系统首先有自己完善的管理机制和可供开发人员使用的API,对于unix相关系统,开源界更是提供了数不尽的资源。而这些产品更大的问题就是:他们只考虑了去如何管理一个系统,而并没有更多的考虑如何去运营这个系统,如何把产品更快投入商业生产中。
我熟知的成熟商业系统主要有cpanel系统,在整个产业都很出名的,因为美国很多主流虚拟主机提供商都使用这个系统。国内很出名的是创值立信,他们的产品可以算上国内老大了,据说他们的开发团队是从万网跑出来的一伙人,所以在经验和技术积累上很成熟。
但这两个系统都有致命的缺点,就是高昂的价格,不能被大众尤其是中小型的客户甚至个人所接受。
再说其他的一些产品。国产的蓝芒主机管理系统,也是行业内的佼佼者,它们的系统支持国内完善的业务流管理,跨平台的系统支持,可谓非常完善的产品。而再有一些小型的产品,基本都工作在windows下,而无法实现对windows/*nix混合集群的支持,这样就造成了部分客户的流失。
而一些开源的虚拟主机管理,其功能之强令人震撼,比如webmin主机管理平台,还有一些windows下的免费软件基本能实现对整个操作系统虚拟化的管理,但一旦涉及商用,就有很大的问题,其欠缺的不仅是支付,业务流,财务等,更难以实现的是对整个运营流程的管理。
而目前国内此市场上,或者产品功能的欠缺,或者价格的昂贵,对于一些初创的公司或者个人都是一个门槛,无法达到成本低廉化。
所以,我认为国内此类虚拟化管理软件还有很大的市场潜力,只要是能够适应市场的产品,会在如此大的市场份额中再分一杯羹。
]]>老一套,要注意的是各种脚本的映射,容器的合理使用。
]]>最近查阅了大量的资料,主要是了解apache的账户机制,suexec的工作原理,然后又翻看了大量的资料,终于搞清楚了一套完整的安全的lamp虚拟主机配置方法,能达到站点的权限隔离,进程账户的相对独立,以及对性能的控制。
在学习的过程中,常犯的错误,就是轻敌。总感觉这事不难,一会就搞定。但实际头疼了半个月。另外就是不看日志。到最后两天,大量的调试是在对比日志和理解日志的涵义,针对日志去进行配置。从我学linux的过程来看,看手册,翻日志,分析别人的案例,是学习的最佳途径。
关于安全配置linux虚拟主机的过程,我将另写文章。
]]>