Используя Django, почему REMOTE_ADDR возвращает 127.0.0.1 на веб-сервере? - PullRequest
8 голосов
/ 27 января 2010

При получении IP с кодом request.META['REMOTE_ADDR']. Это хорошо работает в локальной системе, но при размещении на веб-сервере, полученный IP-адрес 127.0.0.1 - Как это можно решить?

Ответы [ 2 ]

10 голосов
/ 27 января 2010

Ваш веб-сервер, вероятно, находится за балансировщиком нагрузки. Вы можете попробовать использовать request.META ['HTTP_X_FORWARDED_FOR'].

Или, лучше, посмотрите книгу django, глава 15 - Что такое промежуточное ПО? и Поддержка обратного прокси-сервера (промежуточное ПО X-Forwarded-For) * .

2 голосов
/ 23 февраля 2010

Если вы находитесь за прокси-сервером и используете apache в качестве веб-сервера, вы можете использовать mod_rpaf. Прокси-серверу нужно только отправлять заголовки X-Forwarded-For или X-Real-IP.

http://stderr.net/apache/rpaf/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...