2011-03-06 3 views
1

Cloudant에서 호스팅하는 CouchDB를 사용하는 Sproutcore 응용 프로그램이 있습니다. devenv에서 나는 Cloudant에게 요청을 전달하기 위해 Sproutcore 프록시를 사용하고 있습니다 (단일 원본 정책으로 인해 JavaScript에서 임의의 호스트를 호출 할 수 없음).Cloudant CouchDB에 의해 백업 된 Sproutcore 앱을 호스팅하는 가장 좋은 장소는 무엇입니까?

앱 호스팅에 대한 귀하의 제안은 무엇입니까? CouchApps 로딩 스크립트가 애매한 오류로 실패합니다 (Sproutcore 앱은 약 40MB의 자바 스크립트 및 리소스입니다).

답변

2

couchdb와 직접 대화하는 앱을 호스팅하는 것은 동일한 출처 정책에 의해 제한되므로 SproutCore 앱을 제공하는 서버는 couchDB 데이터베이스에 액세스 할 때와 동일한 도메인에 있어야합니다. 귀하의 호스트가 정적 파일 서버를 제공한다면, 그것을 사용할 수는 있지만 가장 좋은 방법은 소파 앱으로 저장하는 것입니다.

SC를 소파 응용 프로그램으로 배포 할 때 중요한 점은 올바른 위치를 가리 키도록 sc-build가 생성하는 URL을 설정해야한다는 것입니다. 다음과 같이 buildfile 설정으로이 작업을 수행 할 수 있습니다.

:url_prefix => '<database>/_design/<designDocument>/' 

이렇게하면 링크가 올바른 위치를 가리 킵니다.

원하는 경우 간단한 URL을 얻기 위해 CouchDB URL 다시 작성을 설정할 수도 있습니다. 이에 대한 자세한 설명은 여기를 보라 :

https://groups.google.com/d/topic/sproutcore/-D-5T5yPg3A/discussion

PS : 40메가바이트 지나치게 큰 것 같다! 이미지가 많습니까? JS/CSS가 많다면 걱정이됩니다.

+0

정보 용 Thnx – Renat

1

Cloudant는 us-east-1b 또는 us-west-1b 가용성 영역의 EC2에서 클러스터를 호스팅합니다. CouchApp로 배포 할 수없는 경우 DB 클러스터 옆에 애플리케이션 계층을 배치해야합니다. 그러면 웹 서버와 데이터베이스 간의 대기 시간이 최소화됩니다.

EC2 인스턴스를 가져 와서 웹 서버를 실행하거나 AWS에서 호스팅하는 제 3 자 호스트 (예 : Heroku)를 사용하여 직접 수행 할 수 있습니다.

두 경우 모두 웹 서버에서 데이터베이스로 작은 프록시를 실행해야합니다. 그렇기 때문에 단순히 S3를 호스팅하는 것이 지금은 옵션이 아닙니다.

일단 앱을 웹 서버에 배포하면 웹 서버와 데이터베이스가 동일한 AWS 가용성 영역에 있는지 확인하는 것을 잊지 마십시오. 그렇지 않은 경우 계정을 옮기기 위해 ask Cloudant 만 있습니다.

+0

Thnx. 내 자신의 AWS 이미지를 시작하는 것보다 간단한 옵션을 찾으려고했습니다. 옵션을 사용할 수없는 것 같습니다. – Renat

관련 문제