문제

Compojure/Sinatra 응용 프로그램을 배포하는 선호하는 방법은 무엇입니까? 호스트에서 여러 사이트가 실행되어 포트 80에서 Jetty/Mongrel을 실행할 수 없습니다. 동일한 호스트에서 실행되는 여러 사이트/응용 프로그램을 어떻게 처리해야합니까?

도움이 되었습니까?

해결책

다음과 같은 웹 서버를 사용하십시오 아파치 포트 80에서 실행되고 사용됩니다 가상 호스트 트래픽을 올바른 앱 서버로 지시합니다. 따라서 기본적으로 각 응용 프로그램 서버 (Jetty/Mongrel 등)를 다른 포트에서 실행하면 각 가상 호스트에서 다른 구성이 있습니다. 모드 프록시 트래픽을 앱 서버로 전달합니다. 다른 웹 서버를 사용할 수 있습니다 lighttpd 또는 nginx. Sinatra 앱의 경우 볼 수 있습니다 Phusion 승객, 일명 모드 레일, 일명 모드 랙, 이론적으로 모든 랙 앱에서 작동하지만 레일과 함께 사용했지만 이론적으로 작동합니다.

좀 더 살펴보면 웹 서버에서 앱 서버로 트래픽을 전달하기위한 다양한 체계가 있지만 이런 종류의 작업을 수행하는 기본 메커니즘은 항상 포트에 청취하는 웹 서버를 갖는 것으로 보입니다. 80 이름 기반 가상 호스트를 사용하여 트래픽을 적절한 앱으로 전달합니다.

다른 팁

나는 몇 년 동안 다양한 독립형 서버 (예 : Allegroserve)와 함께 이런 종류의 일을 해왔습니다. 나는 가장 좋은 접근법을 찾았습니다.

  • 각각의 다른 서버를 다른 비정규 포트에서 실행하십시오 (예 : 8080)
  • 운영 pound (또는 nginx 등) 80의 경우 각 응용 프로그램에 요청을 매핑하도록 구성되었습니다.

파운드는 훌륭하고 구성은 Nginx와 달리 매우 간단합니다. 또한 SSL 프론팅 및 HTTP 소독을 수행하여 응용 프로그램에서 부담을 줄 것입니다.

승객을 사용하십시오! http://modrails.com - Apache 및 Nginx 용 플러그인으로, 가상 호스트로 Ruby 앱을 쉽게 실행할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top