2013-03-05 3 views
5

동일한 서버에 여러 개의 redmine 인스턴스를 보유하는 가장 좋은 방법을 연구 중입니다. 기본적으로 각 redmine 그룹에 대한 데이터베이스가 필요합니다.여러 redmine 인스턴스 모범 사례

  1. 각 그룹
  2. 배포 정말 최고 모르는

여러 데이터베이스와 하나 개 레드 마인 인스턴스에 대한 레드 마인 인스턴스를 배포 :

은 지금까지 나는 두 가지 옵션이 있습니다 이 상황에서 연습, 나는 어떤 사람들이 두 가지 방법으로 이것을 보았다.

nginx 및 승객과 함께 여러 개의 redmines (3 인스턴스) 배포를 테스트했습니다. 그것은 잘 작동했지만 나는 많은 경우 그것이 실현 가능하지 않을 수도 있다고 생각합니다. 각 응용 프로그램은 약 100MB RAM이 필요하며 요청이 늘어남에 따라 응용 프로그램에 더 많은 프로세스를 할당하는 경향이 있습니다. 이 시나리오는 많은 인스턴스가있는 경우 좋지 않습니다.

옵션 2가 적당하다고 생각합니다. 레일스 환경에서 구현할 수 있다고 생각합니다. 하지만 세션과 관련된 보안 문제가 있다고 생각합니다. A 사이트의 사용자가 A 사이트의 인증 후 사이트 B에서 작업을 수행 할 수 있다고 생각합니다.

이 상황에 대한 우수 사례가 있습니까? 이 상황에서 가장 좋은 방법은 무엇입니까?

다른 요구 사항은 다음과 같습니다. Redmine 인스턴스를 만들거나 종료 할 수 있어야합니다 (예 : 서버 재시작을 피해야합니다).

영어를 유감스럽게 생각합니다.

편집 :

내 솔루션 : 나는 각 그룹의 레드 마인 인스턴스를 사용했다. 저는 각 인스턴스를 독립적으로 관리하기 위해 nginx + unicorn을 사용했습니다 (승객은 각 인스턴스를 독립적으로 관리 할 수 ​​없었기 때문에).

답변

3

두 옵션은 함께 가야 결국별로 다르지 않습니다. 유일한 차이점은 옵션 2에서 디스크의 코드 사본 하나만 있다는 것입니다.

Redmine (일반적으로 대부분의 Rails 앱)은 각 요청에 대한 데이터베이스 전환을 지원하지 않으며 특정 환경과 관련된 일부 데이터는 처리 중에 캐시되기 때문에 각 인스턴스마다 다른 작업자 프로세스를 실행해야합니다.

주어진 원숭이 패치와 symlink-magic이 의도적 인 구성 차이 (데이터베이스 및 전자 메일 구성, 업로드 된 파일의 경로 등)에 대한 적절한 초기화를 허용하기 때문에 코드베이스조차 공유 할 동기가별로 없습니다. ...). 데비안 패키지는 그렇게하지만 (내 눈에는) 부서지기 쉽고 오히려 비표준 시스템으로 연결됩니다.

다시 강조 : 인스턴스간에 디스크에 동일한 코드를 공유하더라도 실행중인 작업자 프로세스를 공유 할 수 없습니다.

1

동일한 코드베이스에서 여러 인스턴스를 실행하는 것은 Redmine에서 공식적으로 지원하지 않습니다. 하지만, 데비안/우분투 패키지는 이러한 접근 방식을 지원하는 것 ... 참조 :

그래서, 일반적으로 :

  • 당신은 데비안/우분투 옵션 # 2로 이동 사용하는 경우
  • 그렇지 않으면 # 1
+0

데비안 기반 서버를 사용하고 있는데, # 2를 사용하여 배포하려고 시도하지만 그 링크에는 수행 방법에 대한 정보가 많지 않습니다. –

0

몇 년 전으로 롤오버하고 이제 각 레드 매인 인스턴스에 대해 고정 컨테이너를 사용하는 세 번째 옵션을 고려할 수 있습니다.

나는 https://github.com/sameersbn/docker-redmine.git을 사용해 왔지만 아직 티켓을 만들고 댓글을 달기 위해 들어오는 메일을 처리하는 것을 지원하지 않는다는 점을 제외하면 매우 만족하고 있습니다.