2012-12-27 2 views
1

포트 8001의 localhost 및 mod_proxy의 apache2에서 twisted.web.server를 실행하고 있습니다. 아파치는 다음과 같은 설정에 따라 프록시 설정아파치 뒤틀린 웹 서버 - 리소스가 없습니다.

http://localhost/jarvis ----> http://localhost:8001/ 

이 규칙에 대한 아파치의 설정은 다음과 같이 서버 설정에 대한

ProxyPass /jarvis http://localhost:8001/ 
ProxyPassReverse /jarvis http://localhost:8001/ 

꼬인 응용 프로그램의 코드 조각은 다음과 같습니다

if __name__ == '__main__': 
root = Resource() 
root.putChild("clientauth", boshProtocol()) 
logging.basicConfig() 
factory = Site(root) 
reactor.listenTCP(8001, factory) 
reactor.run() 

내가 갈 때

http://localhost:8001/clientauth 

예상대로 실행됩니다. 내가

http://localhost/jarvis/clientauth 

를 사용하지만 때 오류 제공 - ". 그런 아이 리소스를" 제가 이해하기에 - 요청이 트위스티드 웹 서버로 올바르게 프록시 처리됩니다. 그러나 왜 아동 자원은 확인되지 않았습니까?

+0

Twisted 'request'에서받은 URL을 인쇄 했습니까?/jarvis를 제거하지 않고 뒤틀린 상태로 전달하면 전체 URL을 수신 할 수 있습니다. –

+0

어떻게할까요? 너는 정교하게 말해 줄 수 있니? – mlakhara

+1

내 머리 부분 클래스의 맨 아래에서 twisted.web.resource.Resource는 인수로 Site 객체를 만들고 getChild() 함수는 요청을 인쇄합니다. 당신의 후유증은 정확히 알 수 없지만 당신이 추정 할 수 있습니다 : [예제] (http://twistedmatrix.com/documents/current/web/howto/web-in-60/dynamic-dispatch.html) –

답변

1

RewriteRule이 누락되었습니다. 나는 그것을 테스트하지 않은,하지만 당신의 문제에 대한 수정은 더 많거나 적은 같은 것입니다 :

RewriteRule ^/jarvis/(.*) /$1

은 mod_rewrite를 사용하도록 설정해야합니다. http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

행운을 빕니다 : 여기

내가 일반적으로 참조를 위해 사용하는 링크입니다!

관련 문제