如何在 DigitalOcean 上使用 Nginx 托管 Ghost

介绍


2013年4月,John O'Nolan(http://john.onolan.org/),不是博客创作领域的新人,为一种名为Ghost(http://en.ghost.org/)的新型博客推出了Kickstarter,这可以极大地简化写作和维护博客。

前提条件


在你开始之前,有一些事情你应该拉在一起

  1. 获取Ghost 的副本 - 此教程将假定您已经在本地计算机上有Ghost的副本. 由于它目前仅可供Kickstarter支持者使用,您应该被发送到网站的链接,您可以下载它。

  1. 设置 VPS
  • 本教程将假定您已经设置了 VPS. 我们将使用Ubuntu 12.04,但您应该对任何你想要的东西都很好。

  1. 指向您的 VPS 域名 - 本教程将假设您已经指向您的 VPS 域名。

步骤1:安装 npm


在我们开始之前,我强烈建议确保您的系统是最新的。

1ssh root@*your-server-ip*

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

1apt-get update
2apt-get upgrade

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

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

** 注意:** 您不应该用sudo运行命令,因为您可能已登录为 root,但如果您偏离本教程并登录为另一个用户,请记住,您可能需要sudo

现在,如果你在命令行运行npm,你应该看到一些帮助信息打印出来。

步骤二:安装幽灵


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

欢迎您将文件直接下载到您的 VPS 或通过 FTP 传输。我将向您展示如何使用 SCP 将文件夹从您的主机复制到服务器。

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

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

现在,回到远程服务器上,进入您刚刚上传的Ghost文件夹,并使用npm来安装Ghost。

1cd ~/ghost-0.3
2npm install --production

一旦完成,请执行以下操作,以确保安装工作正常:

1npm start

你的输出应该看起来如下:

1> [email protected] start /root/ghost-0.3
2> node index
3
4Ghost is running...
5Listening on 127.0.0.1:2368
6Url configured as: http://my-ghost-blog.com

如果是这样的话,恭喜你!Ghost已在你的服务器上运行,停止使用Control-C的过程,然后继续进行下一步来完成配置。

步骤 3:安装和配置 nginx


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

入口很简单:

1apt-get install nginx

配置只是稍微更具挑战性。从cd到 nginx 的配置文件开始,然后删除默认文件:

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

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

1cd sites-available
2touch ghost

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

 1server {
 2    listen 0.0.0.0:80;
 3    server_name *your-domain-name*;
 4    access_log /var/log/nginx/*your-domain-name*.log;
 5
 6    location / {
 7        proxy_set_header X-Real-IP $remote_addr;
 8        proxy_set_header HOST $http_host;
 9        proxy_set_header X-NginX-Proxy true;
10
11        proxy_pass http://127.0.0.1:2368;
12        proxy_redirect off;
13    }
14}

最后,创建从可用网站中的文件到可用网站的同步链接:

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

这将听取在端口80上的流量,并将请求传递到Ghost,只要它们连接到您提供的域。

重新启动服务器(使用步骤 2 末尾的代码),然后访问您的域名。

ghost

步骤4:设置升级


最后一步是做一个 Upstart 任务,将处理 Ghost,并确保如果您的服务器因某种原因关闭,Ghost 将被重新启动。

1cd /etc/init
2nano ghost.conf

并在以下配置中粘贴:

 1# ghost
 2
 3# description "An Upstart task to make sure that my Ghost server is always running"
 4# author "Your Name Here"
 5
 6start on startup
 7
 8script
 9    cd /root/ghost
10    npm start
11end script

这应该确保您的服务器随时启动 Ghost,并允许您轻松地使用服务幽灵启动,服务幽灵停止服务幽灵重新启动来控制 Ghost。

Published At
Categories with 技术
comments powered by Disqus