Django 응용 프로그램을 개발하고 기본 PHP 기반 사이트와 동일한 서버에서 제공하는 내 원래 Django serving question의 후속 질문이 있습니다 (모두 내 웹 사이트의 더 큰 이전 부분 임). 정적 인 PHP에서부터 일련의 장고 앱에 이르기까지).Django 응용 프로그램의 ProxyPass 및 ProxyPassReverse
mod_wsgi를 사용하여 다른 포트 (8000)에 내 장고 응용 프로그램을 배포 한 대신 제공되는 이름 서버 솔루션을 사용할 수 없습니다. 그러나 이제는 장고 애플리케이션을 메인 사이트에 실제로 통합해야합니다.
http://www.example.com/app/newsletter
가 성공적으로 프록시를 얻을 것이다 :
여기ProxyPass /app/newsletter http://www.example.com:8000/app/newsletter
ProxyPassReverse /app/newsletter http://www.example.com:8000/app/newsletter
내가 어떤 요구를 할 것으로 기대 : (http://www.example.com 말에 대한) 내 아파치 2.0 구성 파일에서 나는 다음과 같은 ProxyPass로는 (내 mod_wsgi에 초기화 후) 명령 추가 ~까지 :
http://www.example.com:8000/app/newsletter
그리고 모든 것이 세계와 맞을 것입니다.
그러나이 경우는 아닙니다. 아파치는 다음 5 정도 분 (이 질문을 정교하게하는 데 걸리는 시간)을 위해 달려 502 프록시 오류 뱉어 : 나는 다음과 같은 연속 오류를 볼이 응답 한 후 내 아파치 2.0 오류 로그를보고
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /app/newsletter/.
Reason: Error reading from remote server
를 :
[Thu Sep 27 15:25:49 2012] [error] Exception KeyError: KeyError(****,) in <module 'threading' from '/usr/lib64/python2.6/threading.pyc'> ignored
그래서 mod_proxy가 Django 및/또는 Python과 연동되는 방식으로 뭔가 이상한 점이있는 것 같습니다. 나는 ProxyPass와 ProxyPassReverse를 사용하는 다른 Java 관련 프로세스를 가지고 있으며 잘 작동한다. 또한, ProxyPass를 적용하려고하지 않으면 Django 응용 프로그램이 모두 잘 작동합니다 (즉, 포트 8000에서 직접 주소를 지정할 때).
아이디어가 있으십니까? 내가하는 일이 특히 복잡한 것처럼 느껴지지 않습니다.
미리 감사드립니다.
모든 것이 동일한 서버에 있으므로 mod_proxy보다는 mod_rewrite를 사용해야한다는 것이 좋습니다. – tatlar