Связывание блога-призрака в подпапке моего веб-приложения

Я создал веб-приложение и блог-призрак. Веб-приложение работает на 80-м порту, а блог-призрак - на 2368-м (по умолчанию для призрака).

Я хочу добавить страницу блога в мойдомен / блог. Может ли кто-нибудь помочь мне с этим.

Я могу вести блог через порт 80, используя nginx, но как запустить его на конкретном маршруте нашего веб-приложения.

это файл конфигурации nginx

server {
    listen 3333;
    server_name  localhost;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:1337;
    }
    location /blog {
    rewrite ^/blog(.*) /$1 break;    
    proxy_pass    http://127.0.0.1:2368;
    }
}

Мое приложение, размещенное на порту 1337, нормально работает с ссылкой 3333 nginx, но когда я открываю localhost: 3333 / blog, блог не появляется должным образом. текст идет, но он полностью искажен, кажется, ссылка css отсутствует.

Итак, у меня есть две проблемы по этому поводу

1. Как правильно разместить блог на mydomain / blog, в данном случае localhost: 3333 / blog.

2. Когда я пытаюсь открыть любую страницу (несмотря на то, что она выглядит искаженной), то, поскольку этот конкретный маршрут не найден в нашем основном приложении, поэтому он перенаправляет их на домашнюю страницу?


person ashishkumar148    schedule 10.06.2016    source источник


Ответы (2)


то, что вы ищете, - это размещение Ghost в подкаталоге. Эта ссылка описывает, какие шаги необходимо предпринять, чтобы это сработало: https://www.allaboutghost.com/how-to-install-ghost-in-a-subdirectory/.

Сообщите мне, сработало ли это :).

person sebgie    schedule 10.06.2016
comment
не могли бы вы проверить 2 вещи: 1) обновите свойство URL в config.js, чтобы оно содержало ваш подкаталог 2) удалите перезапись из местоположения вашего блога (это то, что нарушает ваш CSS) и обязательно включите все заголовки 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_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:2368; proxy_redirect off; } - person sebgie; 20.06.2016
comment
404 идет на удаление перезаписи и использование вышеуказанного кода. Но следующей строкой перепишите ^ / blog (. *) / $ 1 break; страница идет, но активы (js, css) не поступают, поскольку страница пытается найти активы на пути mydomain / assets, несмотря на mydomain / blog / assets, где они действительно присутствуют. Вы можете мне помочь? - person ashishkumar148; 20.06.2016
comment
Как я уже писал выше: вам нужно обновить свойство URL в config.js, которое является частью Ghost, чтобы блог стал доступен в подкаталоге. После этого ваш блог будет отвечать только из подкаталога. Второй шаг: после того, как ваш блог настроен правильно, вам больше не нужно перенаправление. - person sebgie; 20.06.2016

Я наконец-то смог запустить его, поэтому отвечу здесь

Предположим, у меня есть приложение и блог. Я запустил приложение на example.com и веду блог на example.com/blog

1. Настройка, связанная с приложением

Допустим, ваше приложение работает на порту 1337.

2. Правильно установите ghost

а. вы можете использовать эту ссылку, чтобы установить призрак.

б. измените URL-адрес файла конфигурации призрака на http://example.com/blog

c. перезапустите призрак.

npm start --production

or

NODE_ENV=production forever start index.js

3 Установите nginx правильно

а. вы можете использовать эту ссылку для установки nginx.

б. теперь создайте файл example.conf в папке / etc / nginx / site-enabled.

server {
    listen 80;
    server_name  example.com;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:1337;
    }
    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_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
}

c. перезапустите службу nginx.

sudo service nginx restart
person ashishkumar148    schedule 21.06.2016
comment
Привет, когда вы говорите X-Real-IP, оставляем ли мы это таким или какой IP там ставим? Спасибо - person Arturo; 12.07.2018