ruby-on-rails - Apache가 애플리케이션 서버와 상호 작용하는 방법
为情所困
为情所困 2017-05-16 17:03:37
0
3
785

Rails 배포 솔루션 중 하나는 Apache를 역방향 프록시로 사용하여 요청을 애플리케이션 서버(예: Phusion Passenger)로 전달하는 것입니다. 역방향 프록시 서버로서 Apache는 그 뒤에 있는 애플리케이션 서버와 어떻게 상호 작용합니까?
예를 들어 내 Apache는 포트 1080을 수신하고 프로세스 정보를 확인했습니다.

으아악

요청이 오면 먼저 Apache로 이동합니다. Apache는 요청을 처리하기 위해 이러한 프로세스에서 프로세스를 할당합니다(예: 프로세스 8391이 할당됨). 그러면 프로세스 8391은 무엇을 하게 될까요? 그는 이 요청을 후속 애플리케이션 서버(Phusion Passenger)로 전달합니까? 그렇다면 애플리케이션 서버에도 자체적인 독립 프로세스가 있습니까? 아니면 프로세스 8391을 응용 서버 프로세스로 간주하여 이 요청을 자체적으로 처리할 수 있습니까?
Apache는 그 뒤에 있는 애플리케이션 서버와 어떻게 상호 작용합니까?

为情所困
为情所困

모든 응답(3)
过去多啦不再A梦

이 질문을 오랫동안 보았지만 당시에는 대답하지 않았습니다. 이제 대답하겠습니다.

Rails에는 서비스 제공을 위해 특정 포트를 수신하는 역할을 담당하는 자체 웹 서버가 함께 제공됩니다.

Ruby 언어에는 http 관련 API가 있으며 간단한 정적 파일 서버를 직접 작성할 수도 있습니다. 그리고 유사한 서비스를 제공하는 강력한 보석이 많이 있습니다.

Apache는 원칙적으로 가장 기본적인 정적 파일에만 응답할 수 있는 전문 http 서버입니다.

Apache에서 PHP 언어를 실행하는 가장 일반적인 방법은 플러그인을 사용하는 것입니다. 즉, Apache는 PHP 파일 요청에 응답하도록 변경됩니다.

Phusion Passenger와 함께 Apache를 사용하여 Rails 애플리케이션을 배포하는 것은 주로 보다 우아한 오류 프롬프트와 자동화된 오류 처리(주로 다시 시작)뿐만 아니라 보다 완전한 로깅 시스템과 로드 밸런싱과 같은 고급 기능을 위한 것입니다.

Rails나 Thin 등의 웹 서버를 이용해 서비스를 시작하는 것도 가능하지만, 브라우저와 개발자 모두 사용하기가 쉽지 않습니다.

자동 오류 처리가 필요하지 않은 경우 nginx 역방향 프록시 레일 또는 씬 포트를 사용하는 것이 최선의 선택입니다.

洪涛

역방향 프록시를 구성하면 Apache는 HTTP 클라이언트 역할을 하여 동일한 요청을 애플리케이션 서버에 보낸 다음 결과를 실제 클라이언트에 보냅니다.

刘奇

아파치를 시작한 후에는 10~20개 이상의 프로세스가 있게 됩니다(구성에 따라 다름)
그런 다음 Apache가 요청을 받은 후 프로세스가 역방향 프록시의 조건을 충족하면 요청이 애플리케이션 서버로 전송됩니다
실제로 애플리케이션 서버에 직접 액세스할 수 있어야 합니다(방화벽 등이 없는 경우)
어쨌든 애플리케이션 서버는 요청을 받은 다음 다시 아파치에 응답을 보냅니다
그런 다음 아파치는 브라우저에 다시 응답을 보냅니다
그러나 이 프로세스 중에 응답의 HTML에서 URL 재작성을 구성해야 할 수도 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿