어떻게 Phusion 여객 재사용 스레드 및 프로세스?
-
03-07-2019 - |
문제
나는 설정 Apache2 웹서버 실행하는 여러 Ruby on Rails 웹 응용 프로그램 Phusion 있습니다.내가 알고있는 승객이 급부상 루비 프로세스에 대한 요청을 처리하기.나는 다음과 같은 질문:
- 만약 하나 이상의 요청을 처리하는 동시에,이 승객을 생성하는 여러 프로세스 또는 여러(루비)스레드가?어떻게 구성을 그것은 그래서 그것은 항상 급부상 하나의 스레드 프로세스?
- 가 있는 경우 두 레일 응용 프로그램,상상하는 요청에 대한 응용가 프로세스 1,나중에 다음 요청에 대한 응 B 도착한다.그것은 가능한 프로세스 1 이것을 처리 요청을 뿐만 아니라?언제 어떻게 이것이 가능한가요?다시 말해서,하나의 프로세스를 허용하는 요청을 처리하는 여러 레일 응용 프로그램은 무엇입니까?
- 나는 같은 레일 응용 프로그램에 수출되는 여러 Url 을고 여러 가상호스트(예:http://https://).이 동일한 프로세스 서비스를 제공할 수 있는 다른 가상호스트가?(응답이 될 것으로 보인 예,내가 설정한 변수에서 응답을 요청하는 가상호스트,그리고 나를 검색 할 수 있었는 값에는 가상호스트 B.)
해결책
일반적으로,승객을 생성하는 새로운 프로세스에 의해 분는 ApplicationSpawner 있는 프레임워크와 응용 프로그램 코드를 미리 로드 메모리에,또는 FrameworkSpawner 는 그냥 있는 프레임워크 코드입니다.
승객,내가 알기로는,지 않는 거래에서 스레드입니다.대신,부하가 증가함에 따라서 응용 프로그램,그것은 포크는 응용 프로그램의 ApplicationSpawner 초기화하는 또 다른 인스턴스입니다.때 부하가 감소,하나 이상 응용 프로그램 인스턴스가 죽었어.
만약 승객이 구성되어에서 특정 방법(저는 믿을 선택하여"스마트"부활 방식),그것이 만들어 FrameworkSpawner,로드 레일 코드는,하지만 어떤 응용 프로그램 코드할 수 있는 여러 갈래로드하고 사용하여 응용 프로그램의 버전도 있습니다.
그래서 당신의 질문에 대답:
그것이 될 것입니다 그들은 순차적으로,그가 추가로 생성 프로세스하는 경우 그 결정의 부하가 높은 충분합니다.
No.하나의 프로세스할 수 있습만에 속하는 하나의 레일 응용 프로그램.
나는 종류의 스케치에 하나이지만,실험에서 의미가 있습니다.승용해야 충분히 똑똑하다는 것을 파악하기 위하여하더라도 그것이 실행하에서 다른 장소에서 server config,당신은 당신에 대해 얘기하고 같은 응용 프로그램입니다.그것은 아마도에 따라 응용 프로그램의 파일시스템 경로입니다.
편집:갔고 읽어이다.밝혀 나가 대부분이지만,기술적인 내용이었습니다.보 승용 설명서
다른 팁
Yup,버크 오른쪽입니다.의 경우에는 세번째 질문 Phusion 승객의 인식에 의한 신청은 그들의 응용 프로그램 뿌리 경로.그래서 심지어가 두 개 있는 경우 가상호스트는 경우에,그들은 모두 동일한 DocumentRoot 다음 Phusion 승객을 생각하는 것이 그들이 동일한 앱입니다.