站台日志

Drupal7在不同环境下的效能

Tony 提交于 周一, 2016-06-13 - 11:11

在升级VPS环境时对比了一下php5,php7和Memcached对Drupal7的效能的影响。

亮点

  • Drupal7对高版本的php有优化,在启用Memcached的情况下,php7比php5减少了15%的查询次数。
  • 启用Memcached就能达到加速200%的效果,实施简单并且非常划算。
  • php7线程占用内存变少,意味着能同时承受更多的访问量。

有图有真相(数值越小越好)

drupal+php7+memcached

测试数据

drupal+php7+memcached

总结

推荐使用php7+apc+apcu+memcached的环境来跑Drupal7,目前还没看到有不兼容的问题出现。

AdvAgg + CDN 为 Drupal 加速

Tony 提交于 周六, 2016-05-07 - 13:08

Advanced CSS/JS Aggregation模块能把页面上的CSS和JS数量合并/压缩到指定数量,例如1,来减少HTTP请求数。CDN模块则能把指定格式/指定路径的静态文件改写到指定的域名上(例如改写到一个或多个支持CDN的空间)来进行加速。

效果图,TONYHEAD 通利堂首页的CSS和JS请求数减为1,misc目录下的文件(可以在CDN模块里通过黑白名单设置哪些路径)全部走又拍云上的CDN空间(cdn.tonyhead.com)。

AdvAgg + CDN 为Drupal加速

2016-06-11更新

在另外一个Drupal站实施AdvAgg加速的效果,三个结果分别为:

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

Tony 提交于 周五, 2016-03-18 - 00:02

继上次切换到HTTPS后更进一步延展到HTTP/2以增强性能,并启用 Certificate Transparency 策略以增强防(bi)护(ge)。

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

TONYHEAD.COM延展到HTTP/2上并启用 Certificate Transparency 策略

在全民从虚拟主机转移到VPS的浪潮中我落后了,CDN我赶上了,HTTPS开始不再落后,HTTP/2和Certificate Transparency应该可以领先一阵子吧。cool

相关链接

TONYHEAD.COM切换到HTTPS上

Tony 提交于 周五, 2014-08-15 - 14:39

TONYHEAD.COM切换到HTTPS上

响应Google号召,使用 HTTPS 为TONYHEAD 通利堂全站护持。

SSL证书是msg7086友情帮忙签的Comodo Positive SSL,再次感谢。

2014-09-14更新

出于速度考量(又拍云的二级域名需要花费5秒在SSL Negotiation上),只对后台启用HTTPS加密,前台使用HTTP。

MovableType配置

修改 mt-config.cgi 里 CGIPath ,如果只是需求单纯Admin后台部分(mt.cgi)启用HTTPS那么就改成 AdminCGIPath ,因为我的计划是前后台(mt-comment.cgi+mt.cgi)都启用HTTPS,所以我设置的是 CGIPath 。

CGIPath https://www.tonyhead.com/cgi-bin/mt/

Nginx配置

在server括号中加入下列,把所有走80端口的流量都重定向到HTTPS下。

if ($server_port ~ "^80$"){ set $rule_0 1$rule_0; } if ($rule_0 = "1"){ rewrite /(.*) https://www.tonyhead.com/ $1 permanent; break; }

页面元素路径配置

把页面元素的引用路径都改成"//domain/flower.jpg"是一个好习惯,浏览器会根据当前页面是HTTP或是HTTPS来自动适配。

其他发现

  1. 在清理页面混合内容的过程中发现新浪云的 .sinaapp.com 和又拍云的 .upaiyun.com 都能支持HTTPS访问,在此大力推荐。
  2. AdminCGIPath 和 CGIPath 的区别
  3. 为了让手机上的浏览器(包括QQ浏览器和Chrome)完美支持加密访问TONYHEAD(不需要在客户端加入额外证书,避免了感叹号提示),需要在服务器端上做好足够的证书链,为什么需要完整的证书链可以参考这里
  4. TONYHEAD.COM的证书链截图。

如何通过Nginx+PSGI运行MovableType

Tony 提交于 周一, 2014-08-11 - 12:50

一个游戏在通关前我都说不上喜爱,随后所有的精诚法门敏捷操控总在我知道我能通关为前提下一一展现。例如贪吃蛇,全屏首尾相接是没有悬念的,区别只在后期食物和加分水果距离蛇头的位置,来决定通关后能够获得的差异的分数。这也是我喜欢网页设计的原因,反正最终是可以实(chao)现(xi)这个效果的,只是看要花多少时间走怎(pian)样(men)的路线罢了。

于是我又来折腾了,把TONYHEAD 通利堂从传统的Apache-cgi_module-CGI切换到Nginx-PSGI-CGI上。

先说说为什么要用PSGI来跑MovableType这个Perl应用,用过MT的都知道MT后台的反应是多么的龟速(短板不在硬件上),想达到WordPress后台那种按按按就出结果的节奏是不可能的,但亲测转到PSGI后效果有明显改善。根据测评,PSGI模式的效率是CGI模式的1.9倍,是FastCGI的1.4倍,在另一个测评中,PSGI的效率都在CGI的2倍以上,如图:

CGI vs PSGI

图片来源

总之切换到PSGI后效能的提升是显而易见的,下面开始介绍做法。

系统环境

Starman是一个PSGI网关,在MovableType 5.2开始支持Nginx+PSGI时进入视野,mt-starman-daemon作为守护进程会把 /cgi-bin/mt/ 目录先预读进内存,把该目录下的所有cgi/pl脚本交给Starman处理,Nginx则负责处理前端静态文件和转发Starman。在AWS市场里Nginx+MySQL+Starman是作为MovableType 6的标准配置,可见这一组合和思路是被推崇的。

步骤

OS部分

先安装cpanminus。

curl -L http://cpanmin.us/ | perl - App::cpanminus

安装Plack,XMLRPC和Starman,这一步需时较长,请耐心等待。

cpanm Task::Plack XMLRPC::Transport::HTTP::Plack Starman

下载mt-starman。

wget -P /etc/init.d --no-check-certificate http://raw.github.com/saahov/mt-starman-daemon/master/debian/mt-starman

把mt-starman设置为可执行。

chmod +x /etc/init.d/mt-starman

修改mt-starman中的配置,需要修改 DIR, SCRIPT, USER, GROUP, ERROR_LOG, PIDFILE 这几个地方。

vi /etc/init.d/mt-starman

把mt-starman加入自动启动。

update-rc.d mt-starman defaults

Nginx部分

Nginx安装的具体步骤网上都有,一键安装包LNMPAMH都是不错的选择。配置Starman需要在 /usr/local/nginx/conf/nginx.conf 里 http 括号内加入:

upstream starman {
server 127.0.0.1:50000;
}

搬迁到BuyVM

Tony 提交于 周日, 2012-11-18 - 20:01

BuyVM最近提供了单独的MySQL服务,每月1美金就可以租用高性能的数据库,而且和本家VPS位于同一内网上,速度和安全都有非常有保障。

Offloaded database servers

For an additional $1.00/month, customers may purchase access to an offloaded MySQL server located on the same LAN as your VPS server.

Our SQL servers are backed by RAID 10 + SSD read caching to drastically improve performance.

All access to the SQL servers is available over your private IP address, meaning you pay no additional bandwidth costs for usage.

https://my.frantech.ca/cart.php?gid=19

之前购买了15元年付的128M VPS,受制于内存一直没有好好利用,现在加上数据库服务就可以把这个VPS用上,有种生机焕发的感觉。 :)

VPS环境CentOS 6.0 32bit (minimal),使用的是XAMPP配置Apache+PHP+Perl+ProFTPD (把安装文件的MySQL部分注释掉就可以省略MySQL了),安装完成后只占用60M左右的内存。(phpSysinfo信息)

搬迁到BuyVM的原因是旧空间商Site5准备限制资源了,而我目前的状况是每天都会超资源的,如果不迁出来就要升级方案,大概要额外给多7块钱左右,而BuyVM这边只需要每月1.25元,干脆搬过来VPS上,重建MovableType的时候再也不用担心影响到邻居了。

目前对BuyVM的想法主要分为两个方向:

  1. 优化单台VPS上的服务以达到"好用"的程度。(虚拟主机---》够用---》好用---》Linode)
  2. 利用BuyVM提供内网IP特色构造服务器群,以提高服务器群整体效率。

2013-01-08更新

BuyVM的Offloaded SQL服务,自己用不完,分点出来给同是BuyVM上的朋友。

位于SJ机房(1月18号将会搬迁),通过内网传输数据,可以为你节省一个MySQL服务,在BuyVM流行的128M小型号VPS上非常有意义。

Offloaded SQL - San Jose - Offloaded MySQL Hosting
Unlimited Databases
Unlimited Usernames
Unlimited Traffic
10GB Storage

Offloaded SQL:https://my.frantech.ca/cart.php?gid=19

Offloaded SQL的说明:http://wiki.buyvm.net/doku.php/sharedsql

如果同样为内存资源烦恼又信赖我的话(我不会看/动你的数据)可以联系我,希望你也是同在SJ机房并且知道128MB内存足够跑任何个人网站。 tyf0575@gmail.com

升级到Movable Type 5.13

Tony 提交于 周一, 2012-03-05 - 21:32

把TONYHEAD 通利堂的站台从Movable Type 4.38升级到5.13,并把这座“房子”的坑补了一遍。

Movable Type 5

 

因为5.x的feeds-app-lite(版本1.22)抓取中文的rss会乱码,而我非常需要这个功能现实在首页的右侧,这是我停留在4.x的主要原因。直到最近找到了一个del.icio.us的PHP库可以做到一样的功能,于是我把这个坑填上并转移到Movable Type 5之上。

但这个PHP脚本不是生成静态的html,所以每次加载会有一定延迟,于是我用js做了一个延迟显示,这样就算加载不了也不会影响整个页面。

 

Movable Type 5

图:未加载完delicious_content前会显示一个Loading Loading 的图标,不影响显示页面的其他部分,读取完毕会加载入页面。

同时用这个库做了一个美味书签页面,使得风格可以统一起来并且显示在TONYHEAD 通利堂的“领土”之上(如果用阿殷的话说就是“under my custody”)

关于MovableType生成文件的属性,可参考这帖,这在需要生成PHP的环境中会遇到(例如在生成的页面里执行PHP代码,PHP文件需要755的属性来执行),我的配置如下:

HTMLPerms 0755
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

另外因为服务器安全升级,旧的QRCode生成方式被禁止了,索性去掉,现在的QRCode交给Google Chart Tools生成。

掌上设备阅读

至此把5.x和书签的坑全填上了。

CloudFlare统计

Tony 提交于 周三, 2011-11-09 - 20:51

CloudFlare上TONYHEAD.COM 2011-10-09至2011-11-08区间统计。

TONYHEAD.COM使用了CloudFlare服务一段时间,回头看一看使用CloudFlare带来的收益。 TONYHEAD.COM现在有11个A记录,2个CNAME记录由CloudFlare处理,在2011-10-09至2011-11-08期间:

CloudFlare
共产生了56,175个浏览量,其中41,983个系普通流量,5,342个来自搜索引擎,8,850来自风险流量。
CloudFlare
共发生254,038次页面元素请求,其中CloudFlare提供了194,829次响应,即系为TONYHEAD.COM的服务器节省了76%的请求数。
CloudFlare
共产生2.4GB流量,其中CloudFlare提供了其中的1.3GB,即系为TONYHEAD.COM的服务器节省了54%的流量。

以下为后台截图:

TONYHEAD.COM 2011-10-09至2011-11-08区间统计

CloudFlare使用心得

Tony 提交于 周二, 2011-09-06 - 13:14

2011-09-02开始使用CloudFlare接管网站和访客之间的链路,以下是使用心得记录下来。
 

2014-09-03更新:因为启用了HTTPS,所以关闭了CloudFlare CDN功能,只用CloudFlare作为DNS。

如果云是橙色的说明本站正在使用CloudFlare服务。(浏览器需要打开javascript)

ipv6 ready

2011-09-27开始提供ipv6支持

当初使用CloudFlare仅是以为可以为自定义域名的Tumblr网站提供代理,但在注册的过程中发现CloudFlare是全个域名来接管的,于是把这个博客也接管过去。

原理

CloudFlare

由CloudFlare充当反向代理服务器,客户端访问的不再是原来的网页服务器而是CloudFlare提供的“云“,这块“云”是基于CDN的,同时具有缓存网页内容/抵御异常流量的功能。

我把CloudFlare应用在TONYHEAD 通利堂Tumblr架设的Container Depot上,同理可以应用在Blogger。

5a1x

启用前5A1X

5a1v

启用后5A1V

自建服务器转移到虚拟机之上

Tony 提交于 周六, 2011-06-11 - 00:34

PIII的显卡被UNDEAD征用后剩余部分成为一堆闲置废铁,帮LIGHTLOAD加了2G内存后(现在共4G)发觉可以让利用多余的内存运行一D常驻程序,于是用VirtualBox装了个Windows 2003 Web Edition来取代PIII来提供自建WEB服务器之用。

优点

方便备份,现在只需要备份虚拟机的镜像文件就可以完整备份“一台电脑”了。
环保省电。
更好玩。

缺点

大量文件操作始终对母机有较大影响,所以关闭FTP服务。
母机身子骨必须坚挺,否则一停就相当于停两台机。