2013-02-11 2 views
2

뒤에 장고 프로젝트를 호스팅 http://10.4.x.y/myapp/admin works. 나는 다른 기계 Y의 외부 IP를 가지고 내가내가 로컬 컴퓨터 X에서 관리 프로젝트를 장고 주최 한 PROXYPASS

X와하는 Y에서 프록시 패스 를하고있는 중이 야

http://proxypassname.com/myapp/admin works. 하지만 관리자 페이지에서 편집 후 "저장"또는 "저장 계속하기"버튼을 클릭하면 로컬 컴퓨터의 IP (즉, http://10.4.x.y/myapp/blah_blah_blah)로 리디렉션됩니다.

django 프로젝트가 로컬 IP 대신 프록시 이름으로 리디렉션되는 것을 확인하려면 어떻게해야합니까?

답변

0

나는이 두 가지를했고 작동했습니다.

  1. 당신이 ProxyPass로를 추가 할 때마다, 당신은 ProxyPassReverse

  2. SITE_ID은이 장고 프로젝트를 가리 키도록 할 도메인으로 설정해야합니다 추가해야합니다.

2

관리자가 생각한 IP로 관리자가 리디렉션되기 때문에 이러한 현상이 발생합니다. HTTP 요청의 헤더에서 가져옵니다.

그러나 수정 프로그램은 매우 쉽습니다. 프록시 서버가 X-Forwarded-For 표준을 구현한다고 가정하면 쉽게 수정할 수 있습니다.

진정한

USE_X_FORWARDED_HOST을 = 당신의 장고를 다시 시작하여 settings.py에서

은, 간단하게 설정합니다.

그래도 작동하지 않으면 프록시가 다른 종류의 헤더를 설정하는지 확인하고 동일한 작업을 수행하는 미들웨어를 작성하십시오. Django's documentation chapter on middleware의 첫 번째 예입니다.