用director.js实现的前端路由

做过后端开发,尤其是使用过类似Django或者express对服务器端的路由功能应该都比较熟悉,国外流行的博客系统wordpress也是非常经典的路由实现案例。那么,究竟什么的路由呢,下面通过wordpress来简单讲一下。

理解wordpress重写规则的的都是知道,实际上任何一条url的访问都是基于wordpress安装目录下的index.php(除了服务器上已经存在文件的访问),当wordpress的固定链接是默认设置是会很明显,例如文章的url是index.php?p=id,分类页面的url是index.php?cat=id。 …阅读更多>>

Linux管道PIPE的原理和应用

Linux中进程的通信方式有信号,管道,共享内存,消息队列socket等。其中管道是*nix系统进程间通信的最古老形式,所有*nix都提供这种通信方式。管道是一种半双工的通信机制,也就是说,它只能一端用来读,另外一端用来写;另外,管道只能用来在具有公共祖先的两个进程之间通信。管道通信遵循先进先出的原理,并且数据只能被读取一次,当此段数据被读取后,马上会从数据中消失,这一点很重要。

Linux上,创建管道使用pipe函数,当它执行后,会产生两个文件描述符,分别为读端和写端。单个进程中的管道几乎没有任何作用,通常会先调用pipe,然后调用fork,从而创建从父进程到子进程的IPC通道。 …阅读更多>>

Super Static Cache: WordPress高级纯静态插件

作者已经开发出来了更适合SEO网站的类Wordpress的内容管理系统Domai CMS, 目前不在使用wordpress, Super Static Cache将停止维护,博客也会抽空迁移到Domai CMS系统上

Super Static Cache是一款WordPress缓存插件,旨在给使用WP的网站提供配置简单,缓存效率高,通用性强的解决方案。

目前国内WP的缓存插件中,Wp super cache和cos-html-cache可能是最为众人所熟知的缓存产品,但是这两个插件各有优缺点。

Wp super cache最著名的wordpress缓存插件之一,它是一款高级插件,能够根据需要作出很多配置,还能自动设置缓存过期时间,在大多数情况下都非常实用。但是一但数据量多大,就可能因为不合理的设置导致服务器压力过大,出现网站反应速度慢,打不开等情况。Super Static Cache在大多数情况下可以替换它。

cos-html-cache是国人开发的一款wordpress纯静态化插件,会自动生成文静态文档,下次访问会直接通过web服务器而不是php,总体表现良好,但是它对固定链接的要求非常高,必须是带有.html的后缀才能被缓存,而且只有一种缓存模式,所有缓存文件和程序文件混在在一起,非常难于管理。Super Static Cache可以完全替代cos-html-cache。
…阅读更多>>

Linux中exec系列函数的应用

这段时间在研究linux中用户登陆和shell执行程序的原理。我们知道,shell命令分为内部命令和外部命令,内部命令有诸如cd,history,exit,echo等,常见的外部命令有ls,ping,netstat等,通过type命令可以查看一个命令是内部命令还是外部命令。当执行的命令是一个内部命令是,shell直接执行;那么shell是如何执行一个外部命令的呢?
…阅读更多>>

Linux中的dup和dup2函数

在前面一篇“用Python给Linux编写守护进程”的文章中,讲到了如何利用python给linux编写一个守护函数。文章讲到了守护进程不依赖用户终端,所以输出的信息用户是察觉不到的,但是有时候我们又需要记录一些信息。例如web服务中,我们可以需要记录访问日志,错误日志等等;在著名的web服务器nginx中,我们可以通过access_log和error_log分别指定访问日志和错误日志的存放位置。
…阅读更多>>

WordPress中获取随机文章导致服务器压力过大的问题分析

最近发现有个服务器上的网站打开速度很慢,有时甚至出现完全打不开的情况。查看了一下服务器状态,发现服务器负载很大,最高时候,load average5分钟平均值都到了20(8核心CPU),接着查看了一下服务IO情况,发现Mysql读写非常频繁,如下图

服务IO状态

服务IO状态

这显然是不正常的情况。接着,本人又查看了mysql的状态,发现出现” Copying to tmp table”的状态,查询语句为“SELECT ID, post_title,guid”。问题应该就出现在这里了,大量临时表的读写显然会导致IO过高,按理说,WordPress官方应该对这些查询做过一些优化,如果一个wordpress会导致出现如此大的问题,它应该也不会如此流行。
…阅读更多>>