Размещение нескольких блогов Ghost на одном сервере при помощи Nginx

Ghost – это простая блог-платформа с дружественным интерфейсом.

В данном руководстве рассказывается, как использовать один виртуальный выделенный сервер для обслуживания нескольких блогов. Для этого используется два домена, привязанных к разным установкам Ghost в рамках одной системы.

Требования

Для выполнения руководства понадобится предварительно настроенный свежий сервер и заранее установленная платформа Ghost. Чтобы получить инструкции по установке и настройке платформы, читайте статью «Управление контентом при помощи платформы Ghost».

Кроме того, нужно настроить доменное имя для каждого блога (в данном руководстве нужно два домена). Оба домена нужно направить на один виртуальный сервер.

Также нужны права root.

Остановка сервисов Ghost

Для начала нужно остановить сервис Ghost, чтобы предотвратить возникновение ошибок при перемещении файлов, используемых платформой Ghost.

service ghost stop

Также нужно остановить веб-сервер nginx:

service nginx stop

Настройка nginx

Теперь нужно отредактировать конфигурации nginx. На данный момент nginx передаёт все запросы в одну точку. Нужно создать разные пути, чтобы веб-сервер nginx мог отличать запросы к разным сайтам.

Откройте каталог nginx с настройками для Ghost. Переименуйте конфигурационный файл Ghost, указав первый домен, а затем скопируйте его содержимо ев файл, предназначенный для второго домена. В данном руководстве используются условные названия firstsite.conf и secondsite.conf; не забудьте указать свои данные.

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

Откройте первый конфигурационный файл в текстовом редакторе:

nano firstsite.conf

В параметре server_name укажите доменное имя первого сайта. Именно так  nginx сможет отличать разные сайты Ghost.

server_name firstsite.com

Сохраните и закройте файл.

Затем нужно повторить процесс для второго файла:

nano secondsite.conf

Отредактируйте параметр server_name, указав доменное имя второго сайта.

server_name secondsite.com

Также нужно изменить порт для второго сайта. На данный момент трафик поступает на одну установку node.js, не разделяя сайты.

Отредактируйте параметр proxy_pass, указав другой порт (это может быть любой свободный порт), например:

proxy_pass http://localhost:2777

Сохраните и закройте файл. Затем перезапустите nginx:

service nginx restart

Настройка Ghost

Теперь нужно отразить изменения, внесённые настройки веб-сервера, в настройках Ghost. Откройте root-каталог сайта:

cd /var/www

Создайте каталог для каждого блога Ghost.

mkdir firstsite.com
mkdir secondsite.com

Теперь нужно переместить каталог Ghost в каталог каждого сайта.

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

Откройте настройки Ghost для первого сайта:

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

Найдите раздел production, который начинается с этой строки:

production: {

Измените значение параметра url, указав название первого сайта:

. . .
production: {
url: 'http://firstsite.com'
. . .

Сохраните файл и закройте его.

Откройте конфигурации для второго сайта:

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

Найдите раздел production и укажите имя второго сайта в параметре url:

. . .
production: {
url: 'http://secondsite.com'
. . .

Найдите раздел server: { блока production. В параметре port укажите порт, указанный для второго сайта в настройках nginx:

port: '2777'

Сохраните и закройте файл.

Создание скриптов upstart

Скрипты Upstart – самый простой способ управлять отдельными установками Ghost. Эти скрипты позволяют запускать, останавливать, перезапускать и проверять состояние каждого сайта в отдельности.

На данный момент в каталоге /etc/init.d/ghost можно найти скрипт инициализации System V. Удалите файл System V, поскольку он может стать причиной конфликта настроек.

rm /etc/init.d/ghost

Создайте новые скрипты для каждого сайта. В данном руководстве показано, как создать альтернативный скрипт под названием Upstart, синтаксис которого несколько проще, чем System V.

Откройте каталог, в котором хранятся скрипты Upstart:

cd /etc/init

Создайте файл для первого сайта:

nano ghost-firstsite.conf

Внесите в него следующий код, указав свои данные.

# ghost-firstsite
start on startup
script
cd /var/www/firstsite.com/ghost
npm start --production
end script

Сохраните и закройте файл.

Теперь скопируйте этот файл, чтобы создать скрипт для второго сайта:

cp ghost-firstsite.conf ghost-secondsite.conf

Откройте новый файл и отредактируйте его, указав данные второго сайта.

# ghost-secondsite
start on startup
script
cd /var/www/secondsite.com/ghost
npm start --production
end script

Сохраните и закройте файл.

Теперь запустите оба сайта:

service ghost-firstsite start
service ghost-secondsite start

Посетите каждый домен в браузере; если всё работает должным образом, на экране появится посадочная страница Ghost.

Создайте учётную запись пользователя и откройте её:

firstsite.com/ghost/signup

Попробуйте добавить новый контент на каждый сайт, чтобы убедиться, что они действительно работают индивидуально.

Заключение

Теперь один сервер обслуживает два отдельных блога. Этот метод можно использовать для размещения и большего количества блогов.

Больше информации о платформе Ghost можно найти в статьях:

Tags: ,

Добавить комментарий