2013-05-17 2 views
1

나는 레일 3 phusion 여객 신청을 접대하는 포트 80을위한 아파치 가상 호스트가있다. 응용 프로그램의 일부 동작을 https (포트 443)로 전환하고 싶습니다. 두 명의 유령 사이에서 phusion 여객 레일 애플리케이션의 인스턴스를 공유하는 가장 좋은 방법은 무엇입니까?공유 레일 3 HTTP 및 HTTPS 사이의 Phusion 여객 배포

는 바로 지금, 내가 가진 :

<VirtualHost *:80> 
    ServerName mycompany.com 
    ServerAlias www.mycompany.com 
    RackBaseURI/

    DocumentRoot /home/ubuntu/mycompany/public 
    <Directory /home/ubuntu/mycompany/public > 
    Options FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

and 

<VirtualHost _default_:443> 
    ServerName shop.mycompany.com 
    SSLEngine On 

    ProxyPass/http://localhost/ 
    ProxyPassReverse/http://localhost/ 
    ProxyPreserveHost On 

    SSLCertificateFile /etc/ssl/... 
    SSLCertificateKeyFile /etc/ssl/... 
    SSLCertificateChainFile /etc/ssl/... 
</VirtualHost> 

나는이 전혀 적합하지 않습니다 알고있다. 더 좋은 방법이 있어야합니다. 모든 요청이 오버 헤드로 인해 https를 통과하는 것을 원하지 않습니다.

마이크

답변

0

내 생각은 컨트롤러 내에서 before_filter를 사용하는 것입니다. 일부 작업은 다음 HTTPS 예로 리디렉션 확인 :

class SomeController < ApplicationController 
    before_filter :redirect, :only => [action_list] 

    def redirect 
    redirect_to :protocol => "https://" unless request.ssl? 
    end 
end 

그러나, 빠른 검색 후, 나는이 유용한 link을 발견했다. 훨씬 좋은 솔루션을 제공합니다.

희망 답변입니다.

+0

불행히도 아파치로 문제를 해결하려고합니다. 아파치와 mod_rails는 포트 80과 443에 대한 두 개의 응용 프로그램 인스턴스를 실행할 것입니다. 지금 mod_proxy를 사용하여 두 포트 사이를 포워드합니다. 나는 더 좋은 방법이 있기를 바랐다. – mike

+0

아하, 당신은 아파치 레벨을보고 있습니다. 내가 당신과 같은 구성을 본 것은 처음입니다. :). 그래도 그렇게하는 것이 효과적인지 궁금합니다. – kasperite