Нужно связать WP Blog с приложением Rails на Heroku - PullRequest
3 голосов
/ 27 февраля 2011

У меня есть клиент, который хочет перенести свое приложение Rails на Heroku. Однако у клиента также есть блог, связанный с его доменом, который работает на WordPress. В настоящее время блог WordPress успешно работает вместе с приложением Rails, но как только мы перейдем на Heroku, это явно не будет возможно.

URL-адрес приложения выглядит как http://mydomain.com,, а URL-адрес блога - http://mydomain/blog.

Я понимаю, что лучшее долгосрочное решение - переделать блог в формате Rails, таком как Toto или Jekyll. Но в краткосрочной перспективе, каков наилучший способ продолжить размещение блога WP там, где он находится (или где-то еще), но использовать Heroku для запуска приложения? Клиент не хочет, чтобы блог находился на поддомене, а оставался на моем домене / блоге по причинам SEO, а также из-за трафика в блоге. У меня есть две идеи:

  1. Используйте rack_rewrite или refraction (или просто обычный старый 301 и Apache mod_rewrite) на старом (не Heroku) сервере, чтобы перенаправить основной URL со старого сайта на Heroku. В этом случае, я могу просто оставить блог WordPress работающим там, где он есть. Я думаю?? Есть ли причина выбрать один из этих параметров (rack_rewrite, refraction или mod_rewrite) поверх других, если я сделаю это таким образом?

  2. Переключите информацию DNS, чтобы она указала на сайт Heroku, а затем используйте перенаправление 301 с блога на старый сайт. Но тогда мне придется получить старый (не Heroku) сайт на поддомене и в любом случае использовать какие-то правила перезаписи, чтобы он выглядел так, как будто это не поддомен.

Является ли какой-либо из этих подходов предпочтительным, или есть другой способ сделать это, который мне не хватает?

Ответы [ 3 ]

1 голос
/ 30 ноября 2011

Другое решение состоит в том, чтобы установить heroku на http://app.example.com, и Wordpress на http://example.com. Вы помещаете свою целевую страницу Wordpress в корень и ведете блог на / blog. Когда пользователь нажимает «войти» или «зарегистрироваться» на целевой странице, он связывается с приложением heroku.

Это будет оптимально с точки зрения SEO, но требует некоторых знаний DNS.

1 голос
/ 24 июня 2013

Неправильный ответ Winfield.Вы можете запустить обратный прокси-сервер на своем стойке (через Heroku), чтобы перейти к блогу, где бы он ни находился.

См. https://github.com/jaswope/rack-reverse-proxy

После того, как вы установите гем и настроите свойПриложение согласно документации, ваш файл ./config.ru будет выглядеть примерно так:

use Rack::ReverseProxy do
  reverse_proxy(/^\/blog(\/.*)$/,
    'http://<app-name>.herokuapp.com$1',
    opts = {:preserve_host => true})
end
1 голос
/ 27 февраля 2011

Единственным долговременным / масштабируемым решением будет постоянное размещение блога в поддомене или другом домене и добавление перенаправления из mydomain.com/blog в новое местоположение (т. Е. Blog.mydomain.com).

Вам понадобится один сервер с внешним интерфейсом, например Apache / nginx на mydomain.com, для обслуживания смешанных серверных частей, таких как Rails и Wordpress, и это невозможно в Heroku.К сожалению, именно здесь вам нужно поработать консультантом и строго обсудить технические ограничения со своим клиентом.

Почему ваш клиент хочет перейти на Heroku?Есть ли большая цель, которую вы могли бы достичь с другим хостингом, где вы управляете внешним интерфейсом и можете смешивать различные серверные части?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...