如何在DigitalOcean上使用Nginx托管Ghost

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

介绍


2013 年 4 月,博客制作领域的新手 John O'Nolan 为一种名为 Ghost 的新型博客启动了 Kickstarter,它可以从根本上简化编写和维护一个博客。 在这里,我们将逐步完成在 DigitalOcean VPS 上设置和运行 Ghost 的所有步骤。

先决条件


在你开始之前,你应该把一些事情放在一起

  1. 获得幽灵副本
    • 本教程将假设您在本地计算机上已经拥有 Ghost 的副本。 由于它目前仅对 Kickstarter 支持者开放,因此您应该已经收到了一个可以下载它的网站的链接。
  1. 设置 VPS
    • 本教程将假设您已经设置了 VPS。 我们将使用 Ubuntu 12.04,但您应该可以随心所欲。 如果您在这部分需要帮助,本教程 将帮助您入门。
  1. 将域指向您的 VPS
    • 本教程将假设您已经将域指向您的 VPS。 本教程 应该可以帮助你完成这部分,如果你不确定如何去做。

第 1 步:安装 npm


在开始之前,我强烈建议您确保您的系统是最新的。 首先通过运行 SSH 进入您的 VPS:

ssh root@*your-server-ip*

在您的本地机器上,并在您的 VPS 上运行以下命令:

apt-get update
apt-get upgrade

完成后,我们需要安装 npm。 运行以下命令将为 Node 安装一些依赖项,将其存储库添加到 apt-get,然后安装 nodejs

apt-get install python-software-properties python g++ make
add-apt-repository ppa:chris-lea/node.js
apt-get update
apt-get install nodejs

注意: 你不应该需要使用 sudo 运行命令,因为你可能以 root 身份登录,但如果你偏离本教程并以其他用户身份登录,请记住,您可能需要 sudo

现在,如果您在命令行中运行 npm,您应该会看到打印出的一些帮助信息。 如果一切顺利,您就可以安装 Ghost 了!

第 2 步:安装 Ghost


接下来要做的是将您的 Ghost 副本放到远程服务器上。 请注意,此步骤仅在当前是必需的,而 Ghost 处于测试阶段。 一旦它向公众开放,它将可以通过 npm 安装(本教程可能会更新以反映这一点)。

欢迎您将文件直接下载到您的 VPS 或通过 FTP 传输。 我将向您展示如何使用 SCP 将文件夹从您的主机复制到服务器。 以下命令将在您的本地终端中运行:

cd /path/to/unzipped/ghost/folder
scp -r ghost-0.3 root@*your-server-ip*:~/

这会将 ghost-0.3 文件夹的所有内容复制到服务器上 root 用户的主文件夹。

现在,回到远程服务器,进入刚刚上传的 Ghost 文件夹并使用 npm 安装 Ghost。 命令将如下所示:

cd ~/ghost-0.3
npm install --production

完成后,运行以下命令以确保安装正常工作:

npm start

您的输出应如下所示:

> ghost@0.3.0 start /root/ghost-0.3
> node index

Ghost is running...
Listening on 127.0.0.1:2368
Url configured as: http://my-ghost-blog.com

如果是这样,恭喜! Ghost 已在您的服务器上启动并运行。 使用 Control-C 停止该过程并继续执行下一步以完成配置。

第 3 步:安装和配置 nginx


下一步是安装和配置nginx。 Nginx(发音为“engine-x”)是“一个免费的、开源的、高性能的 HTTP 服务器和反向代理”。 基本上,它将允许来自外部的 80 端口连接连接到运行 Ghost 的端口,以便人们可以看到您的博客。

安装很简单:

apt-get install nginx

配置只是更具挑战性。 通过 cd 进入 nginx 的配置文件并删除默认文件开始:

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

现在,创建一个新的配置文件:

cd sites-available
touch ghost

并粘贴以下代码,修改它以适应您自己的配置(您唯一需要更改的是域名):

server {
    listen 0.0.0.0:80;
    server_name *your-domain-name*;
    access_log /var/log/nginx/*your-domain-name*.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
}

最后,创建从 sites-availablesites-enabled 的文件的符号链接:

cd ..
ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost

这将侦听从端口 80 传入的流量并将请求传递给 Ghost,前提是它们连接到您提供的域。

再次启动服务器(使用第 2 步末尾的代码)并访问您的域。 如果你看到幽灵,你很高兴!

第 4 步:配置新贵


最后一步是创建一个处理 Ghost 的 Upstart 任务,并确保如果您的服务器由于某种原因关闭,Ghost 将被重新启动。 首先通过执行以下操作创建一个新的 Upstart 配置文件:

cd /etc/init
nano ghost.conf

并粘贴以下配置:

# ghost

# description "An Upstart task to make sure that my Ghost server is always running"
# author "Your Name Here"

start on startup

script
    cd /root/ghost
    npm start
end script

这应该确保 Ghost 在您的服务器启动时启动,并允许您使用 service ghost startservice ghost stopservice ghost restart 轻松控制 Ghost。