在Ubuntu 14.04上具有Ghost的Nginx反向代理

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

是一个使用node.js编写的免费开源博客平台,完全可自定义且专用于发布。

准备服务器:更新程序包,安装Node.js和NPM

我们将通过登录服务器来演示安装 root,这样我们就不需要添加 sudo 在每个命令之前。如果您以其他用户身份登录,请记住您将需要 sudo

在您的服务器上,运行以下命令以更新软件包索引,升级软件包并安装 nodejsnpm

apt-get update
apt-get upgrade

apt-get install python software-properties-common gcc g++ make -y  # auto install
add-apt-repository ppa:chris-lea/node.js -y

这些命令的输出应类似于:

gpg: keyring `/tmp/tmpvpe2ugzj/secring.gpg' created
gpg: keyring `/tmp/tmpvpe2ugzj/pubring.gpg' created
gpg: requesting key C7917B12 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpvpe2ugzj/trustdb.gpg: trustdb created
gpg: key C7917B12: public key "Launchpad chrislea" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

自动将软件包签名密钥添加到密钥环(以便可以验证下载的软件包),并将PPA添加到APT的 sources.list.d

现在,让我们运行:

apt-get update  # again 
apt-get install nodejs -y

npm 测试安装。你会看见 npm的用法显示在屏幕上:

Usage: npm 
...
...
[email protected] /usr/lib/node_modules/npm

现在我们可以安装Ghost了。

安装:Ghost和Nginx

由于Ghost现在被认为是“稳定的”,因此可以通过以下方式安装 npm。使用以下命令安装:

npm install -g ghost --production

现在忽略任何警告。

接下来,我们将启动Ghost并检查其是否正常运行。

cd /usr/lib/node_modules/ghost
npm start --production

输出应如下所示:

> [email protected] start /usr/lib/node_modules/ghost
> node index

Migrations: Database initialisation required for version 003
...
Migrations: Complete
Ghost is running... 
Your blog is now available on http://my-ghost-blog.com 
Ctrl+C to shut down

有用!采用 Ctrl-C 关闭Ghost,然后继续下一步:安装(和配置)Nginx。

Nginx的安装非常简单。运行以下命令:

apt-get install nginx

Nginx将配置为允许从野外到服务器上的端口80(如果使用SSL,则为443)的任何连接,然后将其转发(“代理”)到Ghost。人们通过这种方式连接到您的博客。

配置Nginx也不难。请按照以下步骤配置Ghost代理。

首先,删除默认配置文件:

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

然后,制作一个新的配置文件:

cd sites-available
touch ghost

根据您的需要调整以下几行,并使用类似 nano 要么 vi 粘贴到其中(您需要设置 server_name 到您的域名):

server {
    listen 80;
    server_name yourdomain.tld;
    access_log /var/log/nginx/yourdomain.tld.log;  # if you want logging

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;       
        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
}

符号链接您的配置文件:

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

重新启动Nginx:

service nginx restart

此时,Nginx已在服务器上安装,配置并运行。

最后:自动启动Ghost

主管 是一个过程控制系统,可让您在启动时运行Ghost,而无需使用初始化脚本。我们将安装Supervisor来管理Ghost。

要安装Supervisor,请运行:

apt-get install supervisor
service supervisor start

然后,在中创建一个新的脚本文件 /etc/supervisor/conf.d/ghost.conf。粘贴以下内容:

[program:ghost]
command = node /usr/lib/node_modules/ghost/index.js
directory = /usr/lib/node_modules/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"

保存并关闭文件。

接下来,我们需要为Ghost创建一个用户,并为其授予访问Ghost文件和数据库的权限。运行以下命令:

useradd ghost
chown -R ghost /usr/lib/node_modules/ghost/
supervisorctl reread
supervisorctl update

我们的设置完成!

现在,您可以通过执行 supervisorctl start ghostsupervisorctl stop ghost

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com