目前由于淘宝存在的众多弊端,比如差评师,规则漏洞,恶意买家等,本想直接在淘宝开店的我,正在开发一套简单实用的电子商务网站系统,从中也领悟了不少经验,在此分享给大家,以供研究。
由于考虑网站的规模发展可以分三步走虚拟主机----->vps---->主机托管----->自己拉专线,外部硬件构架,及网站流量带宽的不同,所以各个阶段的网站构架也不同,无非是前端加不加squid ,数据库加不加memacached ,nginx负载均衡,可扩展,高可用性等,没什么好说的都是死的东西,参考下相关文档不难搞定,这里就不说了。
我这里要讲的是web网站构架需要用什么技术,各个工具的用途理解,以及我们真的需要什么技术基础及核心技术,本人的网站也就是一个仿淘宝个人B2C网站,需要使用到的核心工具有:
freebsd,pf防火墙,snort,apache,nginx(tengine),squidvarnish),debian6,lsm,javescript,jqury,php5,apc,memcached,mariadb(mysql),keepalive以及相关的网页php设计工具以及测试浏览器等
到底这些工具的真正作用是什么呢,为甚么选择他们呢,我相信大家都有个各自的看法,经验,以下内容仅仅代表个人观点,不一定正确,随便引用出了错了可不要找我哈:
1,apache,nginx无非就是拿来做web站点文件的查找,分发这是基本功能,其中nginx我是要用来做rewrite,配合SEO用,以及动静态分离(nginx静态apache动态), 还有一个重要功能就是防止ddos,cc安全防护,配合keepalive高可用。
2,squid这个到了后期专线时用来建立本地cdn,缓存服务器用,可以加入简单的7层防御过滤配合四层防火墙使用。
3,memcached,这个东东说白了就是一个简单的key值-nosql内存数据库,由于不需要OLTP所以可以用来缓解后端mariadb压力,这个也是要拉专线后使用前期用处不大,如果大家的业务非常复杂属于OLTP,则不需要memecachd建议直接采用perconadb,是一个mysql innodb加强版,或者干脆使用postgresql不相信oracle了!
4,html处理页面内容,javascript实现浏览器客户端动态页面效果,考虑各大游览器的兼容性开发很烦人,最好使用jquery,一定要考虑安全问题,配合后端php防止数据提交的非法操作。
5,php不用说了,任务就是连接后端数据库(实现读写分离),实现页面真静态,用户数据输入的安全过滤,处理session,以及配合前端经行数据的互交。APC作为php加速缓存,大家也可以选择zend,xcache等
6,后端mariadb当然是保存商品数据,用户数据了,由于本站点属于OLAP所以没有采用postgresql,perconadb或则innodb马达,至于nosql-mongodb目前还不在考虑之中,估计没有那么大的业务数据量,等到达2亿数据再说吧, 那个时候估计也是比尔盖斯了吧!
7,其他的网页三剑客,vim,ie不多少了,是人就知道干什么了
8,debian6,linux操作系统所有web,数据库的基础平台,由于不是什么重大,关键核心业务,而且打算购买的机器也是自己diy的服务器,没有那么多专用硬件,而且后期需要定制系统kernel,选择centos没意义(kernel都定制了)。
9,由于资金有限,暂不考虑使用ciso,华为专用防火墙系统,自己定制精简freebsd9,使用pf为主力防火墙进行包过滤,syn代理,nat转发过滤,以及防ddos.
10,在交换机的cp端口,配置snort进行***检测,防止非法的***活动分析,其他的linux服务器则看情况部署lsm模块进行安全mac防御.对于网站目录权限,还需要使用特殊方法进行设置,绝对不能是777,这点就保密了,请见谅黑牛太多,暴露有危险。
以上只是我个人对各个工具的理解,都是死的东西,无非是安装,配置,优化,加上点网站构架,多看看,多想想,多测试一般都能在短时间掌握。可是真正需要我们花费很多时间去考虑的应该是html,javescript,jquery,php本身的基本功,以及网站的美化,功能安排,布局,以及安全!说白了, 编程工具,语言只是一直画笔,只是掌握了基本的使用,是远远不够的,我们需要经过长时间的磨练,学习,实战,才能真正的能用这只画笔画出美丽的作品来!
所以一个站点的开发核心能力应该是web美工,网站功能布局,动态编程(js,php),以及根据需求,把各种硬件资源,软件特性相结合优化网站构架提高性能,合理配置防火墙,linux安全加固,做好上线前的各种测试,特别是关键的支付API更是要测试到位,实在不行就直接转接到淘宝实现。