2011-08-08 4 views
0
내가 울부 짖는 그래프에 표시된 행동을 달성하기 위해 컨트롤러 만들

에 대한 모든 요청 :이 가능한 경우프록시 웹 사이트 및 반환 결과

enter image description here

누군가가 예를 제공 할 수 있습니까?

편집 : 그냥 페이스 북 (사이트 C)에 사이트 A에서 페이스 북 SDK를 사용하여 모든 POST 요청 사이트 B를 통해 프록시 원하는 경우

이 코드를 찾을 수의 도움 :

def default 
    result = Net::HTTP.get_response(
     "realserver.internal.net", 
     @request.env["REQUEST_URI"] 
     ) 
    #render error if result. ... 
    render_text result.body 
    end 
end 

답변

0

그것을 요청이 어디로 가려는 지 숨기거나 브라우저의 csrf 보호를 둘러싼 것처럼 보입니다. 전자의 경우 인터넷을 통해 모든 사이트 C의 인트라넷 페이지를 노출시킬 수 있기 때문에 사이트 C에서 요청할 수있는 URL을 제한하려고합니다. 후자의 경우 JSONP 또는 CORS를 고려 했습니까? 사용자에게 더 빠르며 사이트 B를 통과하는 트래픽이 적습니다.

다이어그램에서 사이트 C의 콘텐츠를 사이트 B에 속한 것으로 표시하고 모든 보안 이것이 필요로하는 법적 문제가 있습니다.

사이트 B와 사이트 C간에 동일한 경로, 쿼리 문자열 및 조각 ID를 유지할 수 있다면 여전히 위와 같은 방법으로 작업 할 수 있습니다.

또한 @request, use request를 참조하지 마십시오. request.fullpath는 @ request.env [ "REQUEST_URI"] 대신 사용할 수 있습니다.

EDIT : 또한 aVenger가 맞으면 역방향 프록시도 작동합니다. 장점 : 빠르고, 코드가 적습니다. 단점 : 요청을 수락할지, 동적 변수를 요청에 추가할지 등을 프로그래밍 방식으로 결정할 수는 없습니다. Facebook의 일은 아마도 효과가있을 것입니다.

+0

페이스 북 SDK를 사용하여 사이트 A에서 페이스 북 (사이트 C)에서 사이트 B까지의 모든 '게시물'요청을 프록시하고 싶습니다. – glarkou

1

레일이 필요없는 것처럼 보입니다. 당신이 원하는 것은 리버스 프록시 (여기서 선택의 여지가 많습니다)입니다. 내가 추천하겠습니다 nginx