2011-02-27 2 views
3

나는 Rails 앱을 Heroku로 마이그레이션하려는 클라이언트가 있습니다. 그러나 클라이언트는 또한 WordPress에서 실행되는 자신의 도메인과 관련된 블로그를 가지고 있습니다. 현재 WordPress 블로그는 Rails 앱과 함께 행복하게 실행되고 있지만 일단 Heroku로 마이그레이션하면 분명히 불가능합니다.WP 블로그를 Roku App with Heroku에 연결해야합니다.

앱의 URL은 http://mydomain.com이고 블로그의 URL은 http://mydomain/blog입니다.

Toto 또는 Jekyll과 같은 Rails 형식으로 블로그를 다시 작성하는 것이 가장 좋은 장기 해결책이라는 것을 알고 있습니다. 그러나 단기간에 WP 블로그를 계속 호스팅하는 가장 좋은 방법은 무엇입니까 (또는 어딘가에 있지만) Heroku를 사용하여 앱을 실행하고 있습니까? 클라이언트는 블로그가 하위 도메인에 있기를 원하지 않지만 SEO 이유로 mydomain/blog에 머물러 있어야하며 블로그에 대한 트래픽이 있기 때문에. Heroku가에 이전 사이트에서 메인 URL을 리디렉션

  1. 사용 rack_rewrite 또는 굴절 (또는 일반 구 (301)와 아파치의 mod_rewrite) 이전 (비 Heroku가) 서버 : 나는이 개 아이디어를 가지고있다. 이 경우, 나는 Wordpress 블로그를 어디에서든 행복하게 운영 할 수 있습니다. 나는 생각 하느냐? 이런 식으로하면 다른 옵션보다 (rack_rewrite, refraction, mod_rewrite) 옵션 중 하나를 선택해야 할 이유가 있습니까?

  2. DNS 정보를 전환하여 Heroku 사이트를 가리킨 다음 블로그의 301 리디렉션을 사용하여 이전 사이트를 사용하십시오. 하지만 하위 도메인에 이전 (비 Heroku 사이트)을 가져야하고 어쨌든 일부 종류의 다시 쓰기 규칙을 사용하여 하위 도메인처럼 보이게해야합니다.

이러한 접근 방식 중 하나를 선택하는 것이 좋으며, 그렇지 않은 방법이 더 쉽습니다.

+0

무엇 단지 루비에서 PHP 구현을 작성하는 방법에 대한? –

+0

@ 존, 나는 같은 상황에 처해있다. 윌 필드의 충고를 따랐거나 다른 해결책을 찾았습니까? – Dorian

+0

@ 도리안, 저는 고객에게 이것이 나쁜 생각이라는 것을 확신 시켰습니다. 그래서 Winfield의 충고를 따랐습니다. –

답변

1

영구적 인 해결책은 하위 도메인 또는 다른 도메인에서 영구적으로 블로그를 호스팅하고 mydomain.com/blog에서 새 위치 (예 : blog.mydomain.com)로 리디렉션을 추가하는 것입니다. .

Rails 및 Wordpress와 같은 혼합 백엔드를 제공하기 위해 mydomain.com에서 Apache/nginx와 같은 프런트 엔드를 실행하는 단일 서버가 필요하며 Heroku에서는 불가능합니다.

슬프게도, 여기는 컨설턴트로 파견하여 기술 제한에 대해 고객과 협조해야합니다.

왜 고객이 Heroku로 마이그레이션 하시겠습니까? 프런트 엔드를 제어하고 다른 백엔드에서 혼합 할 수있는 다양한 호스팅을 통해 달성 할 수있는 큰 목표가 있습니까?

+0

감사합니다. 아주 좋은 조언처럼 들립니다. 서재응 이유에 대한 –

+0

은 블로그를/블로그가 아닌 하위 도메인에 저장하는 것이 좋습니다. –

1

또 다른 해결책은 영웅을 http://app.example.com으로 설정하고 Wordpress를 http://example.com으로 설정하는 것입니다. Wordpress 방문 페이지를 루트에두고 블로그는/blog에 넣으십시오. 사용자가 방문 페이지에서 '로그인'또는 '가입'을 클릭하면 heroku-app에 연결됩니다.

이것은 SEO 관점에서 최적이지만 일부 DNS 지식이 필요합니다.

1

Winfield의 대답이 올바르지 않습니다. Heroku를 통해 랙 서버에서 역 프록시를 실행하여 어디서든 블로그로 직접 연결할 수 있습니다.

, 당신의 ./config.ru 파일은 다음과 같은 것을해야합니다 후 https://github.com/jaswope/rack-reverse-proxy

이 보석을 설치하고 문서에 따라 응용 프로그램 설정을 참조 :

use Rack::ReverseProxy do 
    reverse_proxy(/^\/blog(\/.*)$/, 
    'http://<app-name>.herokuapp.com$1', 
    opts = {:preserve_host => true}) 
end 
관련 문제