4月7日增加北京东直门双线数据中心,5月9日增加北京石景山七线数据中心。详情 42qu ...

Nginx+FastCGI 运行 WordPress 和 WP Super Cache

wordpress

有了一个自己的 VPS 主机以后就自由多了,拥有 root 访问权限,几乎可以做任何事情,VPS 一开通我就迫不及待的想要用 nginx 换掉笨重的 apache,share hosting 就没那么幸运了,只能给什么用什么了。

WP Super Cache 是一个 WordPress 插件,用来给 WordPress 提供缓存,也就是说用户请求一个 WordPress PHP 页面后,WP Super Cache 会把结果转化成 HTML 文件保存下来,这样下次用户访问同一个页面的时候就会优先访问那个已保存的 HTML 文件,这样中间就没有 PHP 解析的过程,所以速度非常快,是高流量博客的必备插件。

说明一下为什么需要 FastCGI?Nginx 体积很小,本身不带 CGI 模块,所以需要和第三方配合以支持各种动态脚本的解析。这些解析脚本是如何和 web server 交流的呢?这时需要一个叫做 FastCGI 的支持。那么什么是 FastCGI 呢?FastCGI 是一个外部程序和 web server 之间打交道的协议/接口,有点像应用程序 API 和操作系统之间的关系。与老的 CGI 比起来,FastCGI 可以同时启动多个进程,而 CGI 程序只能运行在一个进程里,这意味着 FastCGI 的性能比 CGI 好得多;FastCGI 的运行完全和 web server 独立,就是说即使 FastCGI down 掉了也不会影响到 web server。

目前较普遍的有两种方法支持 FastCGI,一种是用 lighttpd 的 spawn-fcgi 程序;另外一种是直接用内嵌在 PHP 里面的 php-cgi。这里以第一种方法(spawn-fcgi)为例。

CentOS 上安装 nginx+spawn-fcgi

安装 nginx 和 spawn-fcgi

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/
epel-release-5-3.noarch.rpm

# yum install nginx
# yum install spawn-fcgi


继续阅读 »

Nginx 的多站点配置

nginx

当我们有了一个 VPS 主机以后,为了不浪费 VPS 的强大资源(相比共享主机1000多个站点挤在一台机器上),往往有想让 VPS 做点什么的想法,银子不能白花啊:)。放置多个网站或者博客是个不错的想法,可是如何配置 web 服务器才能在一个 VPS 上放置多个网站/博客呢?如何通过一个 IP 访问多个站点/域名呢?这就是大多数 web 服务器支持的 virtual hosting 功能。这里将描述如何一步一步如何用 nginx 配置 virtual hosting。

nginx 是一个小巧高效的 web 服务器,由俄罗斯程序员 Igor Sysoev 开发,nginx 虽然体积小,但功能一点也不弱,能和其他的 web 服务器一样支持 virtual hosting,即一个IP对应多个域名以支持多站点访问,就像一个IP对应一个站点一样,所以是”虚拟”的。你想在一个 IP 下面放多少个站点就放多少,只要硬盘够大就行。

这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设:

IP地址: 202.55.1.100
域名1 example1.com 放在 /www/example1
域名2 example2.com 放在 /www/example2

配置 nginx virtual hosting 的基本思路和步骤如下:

把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/
给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf, 并把配置文件放到 /etc/nginx/vhosts/
然后在 /etc/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)
重启 nginx

具体过程

下面是具体的配置过程:

继续阅读 »