2012-07-28 3 views
0

지금 레일 애플리케이션을 개발 중입니다. 현지화 용. 나는 아래와 같은 접근법을 사용하고 싶다.레일상의 루비에 대한 계정 페이지와 톱 페이지를 분리하는 방법

  1. 사이트 톱 페이지
    프로토콜 : HTTP
    도메인 : 국가 코드 사이에 여러 개의 하위 도메인 : en.myapp.com, it.myapp.com, fr.myapp.com

  2. 계정 페이지
    프로토콜 : https
    도메인 : 사용자 간 언어 변경을 위해 i18n을 사용하는 하나의 기본 도메인.

SEO의 경우 정적 페이지 (판촉 페이지)를 국가 간 별도의 서버에 넣으 려합니다.

나는 heroku를 사용하고 있습니다. heroku 서버의 동적 컨텐츠와 여러 서버의 정적 컨텐츠를 어떻게 연결할 수 있습니까?

예를 들어 다음과 같은 속성을 전달하려고합니다. locale 사용자가 정적 페이지의 계정 페이지를 입력 할 때. 가능한가?

편집
나는이 문제에 대해 검색, 지금은 아래의 방법은 좋은 것입니다 생각.

별도의 서버 또는 별도의 Heroku 응용 프로그램에 호스트 하위 도메인의 정적 페이지. 사용자가 각 하위 도메인 페이지에서 언어를 변경하고 다른 하위 도메인 페이지로 리디렉션하면 ": locale = ko-kr"과 같은 쿠키를 설정합니다. ko-kr.myapp.com

쿠키를 공유합니다 (사용자가 이미 로그인 한 경우 use 데이터베이스 내의 국가 및 로캘 코드) 기본 도메인 및 하위 도메인. 사용자가 가입 또는 로그인 페이지에 들어갈 때 쿠키를 기반으로 동적으로 언어를 변경하십시오.

이 방법이 효과가 있습니까? 다른 접근법을 알고 있다면 나는 그것을 알고 싶다.

답변

0

어떤 DB 저장소를 사용하고 있습니까? MySQL에서는 매우 까다로워 질 수 있습니다.

새 프로젝트 IMO에 과도한 db sharding을 경험하고 싶지 않으면 중앙 MySQL 서버가 필요합니다. 중앙 서버를 사용하면 다른 국가의 서버에 액세스하는 경우 대기 시간 사용자가 경험할 수있는 것보다 MySQL과 로컬 국가 서버 사이의 대기 시간이 훨씬 길어집니다!

내가 너라면, 모든 웹 사이트에서 사이트로드 속도를 높이기 위해 CDN에 등록하기 만하면됩니다. 설치가 쉽습니다.

타겟팅하는 국가에 물리적으로 서버가 있으면 많은 도움이되지 않습니다. 그것은 Google 순위 요소의 매우 긴 목록에있는 하나의 매개 변수입니다 ... 그리고 내가 지금까지 발견 한 것에서 매우 중요한 것은 아닙니다.

+0

아마존 S3 및 Postgresql을 사용하고 있습니다. CDN, https://devcenter.heroku.com/articles/cdn-asset-host-rails31을 구현하기 위해이 인스 턴션을 따릅니다. 서버의 위치가 그다지 도움이되지 않으면 모든 정적 페이지를 Heroku에 배치합니다. 정보 주셔서 감사합니다. –

+0

여러 데이터 위치의 (매우) 어려운 방법으로 이동하지 않을 것이라고 확신하면 대답을 승인으로 표시하는 것이 좋습니다. P –

관련 문제