|
网站发布
网站名称: |
游子澳洲分类信息频道 |
网址: |
http://classad.yoozi.com.au |
CI 版本: |
CI 2.0 Reactor |
网站介绍: |
游子澳洲分类信息频道是一个基于澳洲本地的华语分类信息网站,提供信息的免费发布和查询。来游子查找悉尼的房屋出租、二手房、二手车、二手物品交易、求职招聘! |
既然是技术分析,请大家在此专注于讨论技术,不要谈论与技术无关的话题,否则删贴不手软。
目前为止此网站由我个人开发(包括设计,前后台编码,服务器配置等等),开发跨度大约为2个月左右的工作日。我相信对于中小团队的初创产品来说,这应该是一个实现性较强门槛较低的实施架构,具有一定参考性。
平台架构:LNMP
Linux采用发行版Centos 5.5 final。主要分两台VPS服务器,web服务器使用的是Linode Fremont机房的1024 VPS方案,数据库服务器使用同一机房的512 VPS方案;其中数据库服务器仅能通过内网才能访问到。
web服务器和php容器直接采用Nginx 0.8.54版本,没有安装除echo模块的其他额外module。
数据库服务器采用Mysql 5.1.x。由于我采用了Sphinx 0.9.9 release版本,而该版本无法支持目前mysql比较新的版本Mysql 5.5.x.
PHP采用的是Codeigniter推荐的PHP 5.3.2,第一次尝试在PHP 5.3.6上编译运行,不过因为一个未知的bug而导致失败,于是重新编译到和测试环境一致的5.3.2版本。
程序架构:Codeginter + Zend Framework
我这里主要将Codeigniter作为程序基础架构,使用Modular Seperation将整个app模块化,便于后期可能带来的快速迭代开发。而将Zend Framework整个框架的部分核心包作为third party库引入到Codeigniter做功能增强,比如Web Service。
搜索引擎架构: Sphinx 0.9.9 + Http中文分词
这个架构实际上和张宴的这篇文章里面提到的实现方式基本相同,只是我采用了自己的实现方式,异曲同工。使用Sphinx将需要字段通过中文一元分词索引起来,然后在web层面对每个关键词进行分词。
其他用到的核心组件和服务:
- Memcached: 将核心频繁访问的资源缓存起来。
- Amazon S3: S3作为静态数据容器,将静态文件比如图片(包括用户上传的图片),js和css存放其中。
- Amazon Cloudfront: 将S3里面的数据利用Cloudfront做CDN加速(目前能否使用有待测试,前些天访问cloudfront链接被重置,希望将来可以重新访问)。
- Amazon SMS: 使用simple mail service作为邮件发送服务。
最后,我始终觉得没有一个架构是完美的,它始终需要我们不断的去调整,对于中小项目可以用改编版的摩尔定律来判断:你的架构是否能够经得起未来N个月用户用量翻番的考验。
本文只是一个引子,对于架构类型的文章,没有架构图,甚至都不是一篇能够及格的文章。未来有时间,大家有兴趣,我会对游子不同架构模块的内容进行深入分析,也好让大家一起帮我找出里面的问题所在。
|
评分
-
查看全部评分
|