2011-03-30 17 views
2

아파치 서버없이 정말 CouchDB를의 나는 정말 잘 장고를 보완 보는 것과 기능을 좋아하고장고 및 CouchDB를 ... CouchDB를 너무 부드럽게에 나는 새로운 해요

를 배포,하지만 난 방법 두 회사가 상업적인 환경에 배치 될 수 있는지 여부를 실제로 이해하지 못합니다. 여기 내 질문 :

CouchDB와 장고를 사용하기로 결정했다면, 당신은 아파치 서버를 사용하여 배포해야한다는 의미입니까? CouchDB가 페이지를 제공하는 일을하는 것이 이상적입니다. 내가 이해하는 것으로부터, Django 프레임 워크를 사용하여 웹 로직을 처리하려면 CGI 호환 웹 서버를 사용해야합니다.

편집 :

더 명확한 설명 : 그것은 장고 프레임 워크와 CouchDB를 다른 서버없이 (가장 일반적으로 아파치 서버 또는 장고 개발 서버) 요청을 처리하기 위해 사용할 수 있습니까? 이유 : CouchDB는 이미 많은 동시 연결을 처리하도록 설계되었으며 확장 성이 뛰어납니다. CouchDB를 사용하고 직접 페이지를 제공하는 데 사용하지 않는 것은 낭비처럼 보입니다.

답변

2

저는 Couchdb와 함께 Django를 프로덕션 환경에서 사용합니다. Django는 아파치 아래에 있지만 Couchdb를 사용하면 장고가 실행되는 데 영향을 미치지 않습니다.

Django에서는 Couchdb와 대화하기 위해 라이브러리를 사용할뿐입니다. Couch는 라이브러리가 db와 통신 할 때 사용하는 프로토콜로 http를 사용합니다. 기본적으로 Couch는 로컬 호스트에서만 수신 대기합니다.

Couchapp는 페이지를 제공 할 수 있지만 장고가 더 우아하게 처리하는 방법을 찾습니다. 대부분 정적 인 페이지와 사이트에 대해서만 적당 할 것 같습니다.

+0

설치시 Django는 모든 영구 데이터를 CouchDb로 보내시겠습니까? 내가 물어야하는 이유는 서버 (또는 동료)를 통해 CouchDB 데이터를 복제해야하는 경우 확장이 매우 쉽다는 것입니다. – pokstad

+0

현재 없습니다. 우리의 응용 프로그램은 프로덕션이지만 많은 사용자가 아닌 소수의 중요한 사용자 만 사용할 수 있습니다. 예를 들어 couchdb를 사용하여 우리 학교에 지원자 기록을 남깁니다. 그것들은 위대한 일을했습니다. 나는 장고에 대한 nosql 백엔드 작업을 알고있다. – emperorcezar

1

나는 여러 가지 옵션이 있다고 생각하며, 각 솔루션이 추가 기능/컨트롤을 제공함에 따라 달성하고자하는 목표에 실제로 도달한다고 생각합니다.

하나는 NGINX와 Apache를 사용하고 django 응용 프로그램에 NGINX 서버 정적 파일을 사용하고 가능한 경우 브리지가 couchdb 문서의 첨부 파일을 제공하도록 할 수 있습니다 (실제로 가능한지 확실하지 않음).). 또한 NGINX를 애플리케이션 로직을 처리하기위한 apache/django 부분의 프록시로 사용할 수 있습니다.

다른 옵션은 'couchapp'를 사용하여 실제로 couchdb에서 콘텐츠를 제공하는 것입니다. 나는 당신이 seo friendly url을 필요로한다면 couchapp 앞에 앉아있는 프록시가되도록 NGINX를 구성 할 수 있다고 생각합니다.

마지막으로 express를 사용하여 nodejs 앱을 설정하는 것이 좋습니다. nodejs 응용 프로그램은 친숙한 URL을 제공 할 것이고 모든 javascript이기 때문에 django/python보다 couchdb에서 더 잘 작동 할 것입니다.

저는이 분야에서 전문가가 아니며, 대부분의 경험은 nginx/apache와 django입니다.하지만 꽤 오래 동안 couchdb를 따라 왔고 모두가 보안을 위해 nginx 뒤에 주차 할 시간이있었습니다 목적,하지만 그 문제가 해결되었습니다 믿습니다 ... 어쩌면?

+0

감사합니다. Mgan,하지만 내가 찾고있는 것은 Django와 Python을 기본 자바 스크립트 대신 실제보기 서버에 구현하는 선상에 있습니다. CouchDB 안내서는 Javascript로이를 수행하는 방법을 설명하지만 다른 언어로 수행하는 방법과 그 제한 사항에 대해서는 설명하지 않습니다 : http://guide.couchdb.org/draft/design.html#server – pokstad

+1

시작할 때, 보기 서버에 ** 다른 언어 **를 사용하는 것이 좋습니다. 귀하의 코드는 모든 언어에서 매우 유사합니다. 아마 그만한 가치는 없습니다. – JasonSmith

+0

디자인 문서는 어떻게됩니까? Django 템플릿을 사용하여 HTML을 생성하는 좋은 장소 인 것 같습니다. – pokstad

0

나는 또한이 질문에 어려움을 겪고 있습니다. CouchDb의 빌트인 웹 서버라면 낭비되는 것 같습니다. 이불을 제공하는 앱은 정교한 앱에 사용할 수 없습니다. 내가 발견 한 무엇

는 다음과 같습니다 :

여기에 설명 된 바와 같이, CouchDB를 다시 쓰기 규칙을 배치 할 수 있습니다 : http://blog.couchbase.com/rewrites-and-virtual-hosting-introduction을 한 우아한 웹 URL을에 간단한 페이지를 매핑 할 수 있습니다.그러나 그러한 서버는 CouchDb의 문서 기반 데이터베이스 (즉, CouchDb의 데이터를 처리하는 CRUD 응용 프로그램)의 프레임 워크 내에서만 페이지를 제공 할 것입니다. 이러한 웹 사이트는 CouchDb

의 inbuilt 복제 기능을 사용하여 본질적으로 확장 가능합니다.

CGI 응용 프로그램이 필요한 상황에서는 다른 서버를 실행해야합니다. 아파치, Ngnix 등과 같은 전통적인 서버를 사용하는 서브 도메인에 대해서 말하지만, 이것은 확장 성을 파괴 할 수 있습니다. 누군가 CouchDb 자체에서 CGI를 호출하는 방법을 보여줄 수 있다면 좋을 것입니다. 정말 멋질 것입니다.

관련 문제