Главная/Статьи/Ghost: установка в поддиректорию сайта
Ghost.JS

Ghost: установка в поддиректорию сайта

Иногда нужно разместить несколько систем в разных поддиректориях одного домена — например, блог на Ghost по адресу /blog, форум на Discourse по адресу /forum, а в корне — основной лендинг. Разберём, как это настроить через Nginx и Apache.

Настройка Ghost для поддиректории

Сначала укажите путь поддиректории в конфигурации Ghost. В файле index.js измените URL для production-режима:

url: 'http://www.yoursite.com/blog/'

Конфигурация Nginx

Отредактируйте файл конфигурации в /etc/nginx/sites-enabled/:

server {
    listen 80;
    server_name localhost;
    location ^~ /blog {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
}

Перезапустите Nginx:

sudo service nginx restart

Редирект non-www на www (Nginx)

Чтобы избежать дублирования контента в поисковиках, настройте редирект с non-www на www:

server {
    listen 80;
    server_name yoursite.com 159.203.232.146;
    return 301 $scheme://www.yoursite.com$request_uri;
}

Конфигурация Apache

Для Apache добавьте в файл /etc/httpd/conf/httpd.conf:


    ProxyPreserveHost On
    ProxyPass /blog/ http://127.0.0.1:2368/blog/
    ProxyPassReverse /blog/ http://127.0.0.1:2368/blog/

Редирект non-www на www через .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]

Конфигурации SSL-сертификатов строятся по аналогичным принципам — просто добавьте listen 443 и укажите пути к сертификатам в соответствующих блоках.