Web集群中文件存储系统的解决方案

归类于其他 参与评论

Web集群中,文件系统的分布式是最重要的一个环节,因为多个Web节点需要访问同一套文件系统,多个节点之间访问文件需要完全同步,跟一台机器上的文件一样。

首先Web集群需要一个Load Balancer,然后多个节点共享数据库和文件系统,比如访问网站example.com,上传了一个文件,这个时候通过LB转发到了A节点,那么文件保存到了A机器,然后我们刷新页面,LB转发到了B节点,如果这个文件在B机器上不存在,就会产生错误。
在Drual系统中就是Files目录,比如我们在A网站上生成了一个image style,如果LB再访问到B上面,如果这个image style不存在,就会出错。

上面的问题,就是我们本文要解决的Web集群中的文件共享。

另外,drupal也有临时文件目录,这个要不要放到共享文件夹里面呢?这个答案请移步这里:
集群服务器,需要共享temp文件夹吗?

阅读全文 《Web集群中文件存储系统的解决方案》

211 Views , , ,

Drupal 文件系统剖析(二)

归类于Drupal 参与评论

前一篇我们分析了drupal的FileAPI和Stream Wrapper的关系,本文趁热打铁,继续分析一下Drupal的Files系统,以便对Drupal的文件处理更加熟悉。
参考上篇:File System和Stream Wrapper的原理介绍

如何实现自有的StreamWrapper

看一个Drupal大学上的提问:《Drupal中如何实现自有的StreamWrapper》,通过上篇文章的阅读,我们简单总结一下。
1. 写一个class,实现DrupalStreamWrapperInterface的接口
2. 实现一个hook,hook_stream_wrappers,返回这个StreamWrapper,通知给Drupal。
通过上面两个简单的步骤就实现了Drupal里面一个自有的streamWrapper。

阅读全文 《Drupal 文件系统剖析(二)》

155 Views , , , ,

File System和Stream Wrapper的原理介绍

归类于Drupal 参与评论

在Drupal7以及PHP(也不知那个版本)后,多了一个概念:Stream,主要用来表示文件流。BTW,追溯起Stream的概念,这个应该很早在Java和C#等OOP的语言中已存在,PHP只是简单的封装了file/file_get_content等函数,使用起来方便,所以PHPer们更少的在意stream以及整个底层的操作。

当我们使用一个完整的框架(如:drupal框架),Drupal又更加完善了PHP中stream的概念和使用方式,使其更加OO,更加易用。

注意:PHP本身是支持StreamWrapper的,Drupal只是对其进行完善,因此PHP的函数,如move、fopen、move_uploaded_file等函数是直接可以用scheme的形式访问(类似php://的形式),在PHP中增加一个streamwrapper需要注册一个,需要调用stream_wrapper_register函数。
详情参考: http://php.net/..class.streamwrapper.php

阅读全文 《File System和Stream Wrapper的原理介绍》

250 Views , ,

Memcache的hash策略及配置总结

归类于服务器技术 参与评论

Memcach是web应用/Drupal应用性能提高的利器,近期在使用Memcache中,发现有很多小问题,因此作者特意总结了几个,放上来供大家参考使用。

1. Memcache和Memcached的区别

这个是历史问题,但是,言而总之:名字长的更牛逼!  

所以,推荐使用memcached。
另外,memcached有很多新特性,包括getMulti/setMulti、支持存储object、支持count+1操作,都会比memcache的好用一些,可以试试,或许以后支持更多的操作,赶上redis。。

Drupal大学上关于memcache的问答:http://../apachesolr_search/memcache

阅读全文 《Memcache的hash策略及配置总结》

228 Views ,

用Drupal做一个邮件订阅推送系统?

归类于其他 参与评论

电子邮件营销称为EDM,即Email Direct Marketing的缩写,是在用户事先许可的前提下,通过电子邮件的方式向目标用户传递价值信息的一种网络营销手段。邮件推送是跟用户互动最有效的手段之一,因此任何一个平台,需要跟用户交流,邮件推送系统是必不可少的一个环节。

本文主要讲解如何用drupal搭建一个邮件推送系统,实现用户订阅邮件的发送。

email-drupal

本文参考: http://www.wdtutorials.com/…

阅读全文 《用Drupal做一个邮件订阅推送系统?》

454 Views ,

用Drush自动备份和部署Drupal站点

归类于Drupal 参与评论

Drush是drupal管理的必备利器,因此drush的一些命名可以很好的帮我们备份和发布站点。推荐一个drush的参考网站,可以详细的查阅drush的各个命令:
http://drushcommands.com

drush-deploy

Drush有一个命令archive-dump可以把整个站点dump成一个压缩包,还有另外一个命令archive-restore可以通过我们dump出来的压缩包恢复站点,因此这两个命令可以快速的帮我们备份和恢复站点,用起来及其方便。

几个参数说明一下:
–overwrite 如果站点存在,则覆盖站点。这个参数比较有用,尤其是多次备份到同一个地方。
–db-su 指定mysql的超级用户,配合–db-su-pw参数,如果数据库不存在,自动创建数据库。(好用吧!)

基于以上两个命令,笔者写了一个简单的小脚本,用于发布站点到另外一台机器上。
不过要用ssh登录,因此需要输入两次密码,解决办法有两种:
1. ssh密钥的方式免密码
2. 用expect调用此脚本,自动输入密码

阅读全文 《用Drush自动备份和部署Drupal站点》

284 Views ,

Drupal 7整合Apache Solr 4.7及中文分词

归类于其他 一条评论

solr的版本升级较快,目前已经到5.x的版本,但是drupal的版本升级比较慢,因此关于Drupal升级使用solr高版本的问题,进展也比较慢,另外一个原因是Drupal的apachesolr模块是否支持也是一个问题,所以作者建议不要盲目的升级使用高版本,一定要测试之后才能在正式服务器上使用。

阅读全文 《Drupal 7整合Apache Solr 4.7及中文分词》

554 Views , , ,

Drupal7配合Varnish及整合drupal模块详细教程

归类于Drupal | 服务器技术 参与评论

本站关于varnish的介绍比较多,不过varnish的使用相对复杂,尤其跟drupal配合使用,本文就介绍一下关于Drupal7配合Varnish使用的详细设置,以便初学者也能顺利安装varnish和drupal

关于Varnish的介绍文章,请参考:

Drupal大学里关于Varnish的问答板块:varnish问答
阅读全文 《Drupal7配合Varnish及整合drupal模块详细教程》

756 Views , , , ,

用Zend OPCache提高PHP的性能

归类于服务器技术 参与评论

Zend OPCache的前身是Zend Optimizer + (Zend O+),在PHP5.5的发行版本中自带了Zend O+,并重新命名为:Zend OPCache。但是默认是没有启用的,可以在ini文件中enable一下。

据统计,zend opcache比apc性能要好,可以提升提升 5%-9%。

APC vs Zend OPCache

值得关注的是Zend OPCache支持PHP5.2.0+的版本,也就是说只要是5.2以上的PHP,都可以是用Zend OPCache,而不需一定要升级到PHP5.5,所以在我们目前的生产站点可以尝试使用Zend OPCache,如基于Drupal6、Drupal7的PHP5.2,PHP5.3等版本。

Drupal大学上也有关于这个问题的讨论,链接一下:Zend OPCache和APC能共用吗?

阅读全文 《用Zend OPCache提高PHP的性能》

718 Views , ,

Linux下如何防止大量IP的并发访问(DDos)

归类于服务器技术 参与评论

近期在Drupal大学上看到一个问题

如何用varnish缓存或其他手段防止不友好人群模拟不同ip同时访问网站》,

问题的来源是一个无效的请求的导致drupal进程特别消耗服务器资源,导致cpu超高。由于近期也在研究iptable的ddos策略,所以就研究了一下,大概列举一下相关的解决方案。

阅读全文 《Linux下如何防止大量IP的并发访问(DDos)》

599 Views , ,

顶部