2010-12-22 3 views
11

웹 서버에 gunicorn과 nginx 및 django가 설치되어 있습니다.Django get IP only 127.0.0.1

내가 원격으로 접속하시면이와 오전 : 데프 testIP (요청) : IP_ADDRESS = utils.get_ip (요청)

내가 내가 말했듯이 난 그냥 127.0.0.1의 IP 주소가 계속

원격으로 액세스하므로 로컬 주소를 제공하면 안됩니다.

제 생각에 그것은 gunicorn과 관련이 있을지 모르지만, 먼저 통찰력이 있는지 확인하려면 여기를 확인하고 싶습니다.

+0

어떻게 nginx를 gunicorn에 연결합니까? –

답변

24

get_ip()는 어떻게 작동합니까?

nginx가 역방향 프록시이고 gunicorn이 응용 프로그램 서버 인 경우 항상 로컬 시스템의 nginx로부터 요청을 받고 있습니다. nginx를 응용 프로그램 서버로 전송

실제 IP 중 하나를 사용하여 proxy_set_header X-Real-IP $remote_addr;

그래서이 부분을 설정 할 수있는 nginx를 conf의 라인을 통해 내 경우 HTTP_X_REAL_IP이며, 다른 헤더에 대한 장고 응용 프로그램 계정 새 IP 헤더 또는 집합 request.META['REMOTE_ADDR'] = request.META['HTTP_X_REAL_IP']

+0

감사합니다. 그랬어! – DantheMan

+0

안녕하세요. ;) –

+1

@DantheMan : 다른 (아마도 더 좋은) 아이디어는 역방향 프록시 미들웨어를 사용하는 것입니다. http://docs.djangoproject.com/en/dev/ref/middleware/#reverse-proxy-middleware – Wolph

관련 문제