如何使用 Nginx 服务器块在一个 VPS 上为多个 Ghost 博客提供服务

介绍


Ghost是一个伟大的新博客平台,简化了创建和运行博客的过程,它拥有干净的界面和易于使用的界面。

在本文中,我们将讨论使用一个VPS来托管多个博客的方法,我们将配置两个域名,以解决在同一系统上托管的Ghost的不同实例。

前提条件


本指南假定您正在使用一个新鲜的滴滴,该滴滴是用一个点击的Ghost图像配置的。 有关 如何在DigitalOcean上创建一个Ghost博客的说明,请点击此处。

这也假定你有两个单独的域名,你会使用的每个博客. 他们都应该指向你的VPS实例,你为你的鬼博客创建. 学习 如何正确配置你的域名,点击这里。

最后,我们假设您已登录到您的幽灵滴作为根。

停止运行服务


在我们开始之前,我们应该停止 Ghost 服务,以免出现问题:

1service ghost stop

这将确保我们不会移动由Ghost过程打开的文件。

我们想用nginx做同样的事情,只是为了安全:

1service nginx stop

更改 Nginx 配置


我们需要做的第一件事是调整 nginx 配置,目前 nginx (我们的 Web 服务器) 已配置为将所有请求传送到一个位置,我们需要根据我们的访问者试图访问的网站创建不同的路径。

我们将重新命名 Ghost 配置文件来描述我们的第一个域名,然后将其复制到代表我们的第二个域名的文件。

1cd /etc/nginx/sites-enabled
2mv ghost firstsite.conf
3cp firstsite.conf secondsite.conf

使用您选择的编辑器打开第一个网站的配置:

1nano firstsite.conf

更改server_name参数以匹配您的第一个网站的域名. 正确获取此部分是很重要的,因为这是nginx唯一的办法知道哪个Ghost实例要传输控制。

1server_name firstsite.com

保存并关闭文件。

接下来,我们需要在我们的第二个网站配置上执行类似的操作。

1nano secondsite.conf

我们需要再次更改server_name参数以匹配我们第二个网站的域名。

1server_name secondsite.com

现在,这种配置将将所有流量发送到同一个 node.js 实例,而不是将其分割到两个网站之间。

更改proxy_pass参数. 我们需要将端口号更改为另一个号码. 它可以是任何不被其他进程使用的端口号码。

1proxy_pass http://localhost:2777

保存并关闭文件。

重启 nginx 通过键入:

1service nginx restart

更改幽灵配置


现在,我们需要在 Ghost 配置文件中反映我们的更改。

1cd /var/www

我们需要为我们的每个幽灵网站创建一个目录:

1mkdir firstsite.com
2mkdir secondsite.com

现在,我们需要将 Ghost 目录移动到每个新文件夹中:

1cp -r ghost firstsite.com
2mv ghost secondsite.com

现在,我们可以打开第一个网站的 Ghost 配置:

1nano /var/www/firstsite.com/ghost/config.js

尋找生產部分,尋找字符串 生產: {. 更改 url 參數以匹配您的第一個網站的名稱:

1. . .
2production: {
3    url: 'http://firstsite.com'
4. . .

保存并关闭文件。

接下来,打开第二个网站的匹配文件:

1nano /var/www/secondsite.com/ghost/config.js

再次,尋找「生產: {」部分. 更改「url」參數以匹配第二個網站的域名:

1. . .
2production: {
3    url: 'http://secondsite.com'
4. . .

接下来,向下滚动到生产区块的服务器: {部分. 更改端口参数以匹配您在第二个网站的nginx配置中选择的代理端口的号码:

1port: '2777'

保存并关闭文件。

创建 Upstart 脚本


管理单独的 Ghost 安装最简单的方法是通过 Upstart 脚本,这将允许您单独启动、停止、重新启动并检查每个网站的状态。

目前,有系统 V init 脚本位于 /etc/init.d/ghost. 如果您遵循此指南,请删除旧系统 V 脚本. 这将有助于避免混淆,并可以防止服务以错误的设置开始:

1rm /etc/init.d/ghost

我们将使用一个名为Upstart的替代系统V,因为它有一个更简单的语法。

转到 Upstart 保留其脚本的目录:

1cd /etc/init

创建您的第一个网站的文件:

1nano ghost-firstsite.conf

内部,我们将放置以下代码. 更改红色值以匹配您的第一个网站的配置:

1# ghost-firstsite
2
3start on startup
4
5script
6    cd /var/www/firstsite.com/ghost
7    npm start --production
8end script

保存并关闭文件。

我们将通过复制我们刚刚创建的网站来创建第二个网站的配置文件:

1cp ghost-firstsite.conf ghost-secondsite.conf

打开新文件,并调整红色值以匹配第二个网站:

1# ghost-secondsite
2
3start on startup
4
5script
6    cd /var/www/secondsite.com/ghost
7    npm start --production
8end script

保存并关闭文件。

现在,您可以通过键入将每个网站带到网上:

1service ghost-firstsite start
2service ghost-secondsite start

如果您访问您的每个域,您应该看到 Ghost 博客登陆页面。

Ghost landing page

创建您的用户帐户并通过访问登录:

1firstsite.com/ghost/signup

将不同的内容添加到每个网站,以验证它们是否真正分开。

Ghost first site

Ghost second site

结论


您现在应该有两个单独的博客从一个滴滴中提供服务. 您可以扩展此技术以服务额外的网站,如您的资源允许。

查看我们的其他文章,了解 如何更改主题和设置, 如何配置电子邮件和测试配置更改如何管理内容

Published At
Categories with 技术
comments powered by Disqus