如何在Ubuntu12.04上安装WordPress、Nginx、PHP和Varnish

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


关于清漆

Varnish 是一种 HTTP 加速器,也是加速服务器的有用工具,尤其是在网站流量大的时候。 它的工作原理是尽可能将访问者重定向到静态页面,并且仅在需要活动进程时才使用服务器本身。

设置

在开始学习本教程之前,有几个先决条件。 您将需要一个具有 root 权限的用户、LEMP 堆栈和已安装在您的服务器上的 Wordpress。

您可以浏览前面的一些教程,以确保您的服务器处于最新状态:

  1. 要创建具有sudo权限的用户,请执行Initial Ubuntu Server Setup的第三和第四步

第一步——安装清漆

一旦你具备了使用 wordpress 配置 varnish 所需的所有先决条件,你应该继续并开始安装 Varnish 的过程。

varnish 站点建议通过他们的存储库安装 varnish 包。

您可以通过获取存储库来启动该过程:

sudo curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add -

下一步是将存储库添加到 apt 源列表中。 继续打开文件。

sudo nano /etc/apt/sources.list

进入文件后,将清漆存储库添加到源列表中。

deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0

保存并退出。

最后,更新 apt-get 并安装 varnish。

sudo apt-get update
sudo apt-get install varnish libvarnish-dev

第二步——配置清漆

一旦你安装了 nginx 和 varnish,你就可以开始配置它们以减轻虚拟专用服务器上的负载。

Varnish 将在端口 80 上提供内容,同时从将在端口 8080 上运行的 nginx 获取内容。

继续并通过打开 /etc/default/varnish 文件开始设置:

sudo nano /etc/default/varnish

找到“DAEMON_OPTS”下的行——在备选方案 2 部分中,将端口号通过“-a”更改为 80。 配置应与以下代码匹配:

 DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

这是您需要在那里进行的唯一更改。 保存并退出该文件并打开 default.vcl 文件:

sudo nano /etc/varnish/default.vcl

这个文件告诉 varnish 在哪里寻找网络服务器的内容。 它应该已经配置为具有后端(即。 nginx) 监听 8080 端口。

我们需要将此文件用于次要目的。 Wordpress 塞满了各种 cookie,这使得缓存变得非常困难。 为了让 varnish 尽可能高效地工作,我们需要告诉它删除所有与 Wordpress 站点的管理端无关的 cookie。

此外,我们需要告诉 varnish 删除使 wrpdress 很难缓存的 cookie。

default.vcl 文件的开头应如下所示:

[...]
backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

# Drop any cookies sent to Wordpress.
sub vcl_recv {
        if (!(req.url ~ "wp-(login|admin)")) {
                unset req.http.cookie;
        }
}

# Drop any cookies Wordpress tries to send back to the client.
sub vcl_fetch {
        if (!(req.url ~ "wp-(login|admin)")) {
                unset beresp.http.set-cookie;
        }
}

[...]

第三步——配置 Nginx

虽然我们已经将 varnish 配置为期望 nginx 端口将在 8080 上运行,但 nginx 的默认设置仍然在端口 80 上。 我们现在将纠正差异。

使用 Wordpress 信息打开虚拟主机文件。 在之前的 Wordpress 教程中,我们简单地将其称为 wordpress:

sudo nano /etc/nginx/sites-available/wordpress

虚拟主机也应该设置为端口 8080,并且只能从 localhost 访问。 更新后的行如下所示:

[...]
server {
        listen  127.0.0.1:8080; ## listen for ipv4; this line is default and implied
        [...]

在开始在我们的站点上运行 varnish 之前,我们需要做最后一件事,那就是删除默认启用的虚拟主机。

sudo rm /etc/nginx/sites-enabled/default

如果您再次需要,该模板将保留在站点可用目录中。

第五步——重启

完成所有必需的更改后,重新启动 varnish 和 nginx。

sudo service nginx restart
sudo service varnish restart

访问您的域应该会立即将您带到 varnish 缓存版本,您可以使用以下命令查看 varnish 在您的 VPS 上的工作细节:

varnishstat

埃特尔·斯维尔德洛夫