Dostałem prostą konfigurację z nginxem dla statycznych nośników i równoważenia obciążenia oraz tornada jako serwera dla django (4 uruchomione serwery). Mój problem jest REMOTE_ADDR nie uzyskiwanie przekazywane do django tak Dostaję KeyError:REMOTE_ADDR nie jest wysyłany do Django przy użyciu nginx & tornado
article.ip = request.META['REMOTE_ADDR']
Zdalny adres jest uzyskiwanie wysłana przez co dzięki nginx.conf X-real-IP (HTTP_X_REAL_IP):
location/{
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect false;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://frontends;
}
jak HTTP jest dołączany do klawisza META nie mogę po prostu zrobić proxy_set_header REMOTE_ADDR $ REMOTE_ADDR. Co mogę zrobić, to przeczytać X-Real-IP, jeśli nie ma zdalnego klucza addr, ale jestem ciekawy, czy istnieje mądrzejsze rozwiązanie.
Dzięki!
To rozwiązanie nie jest prawidłowa, ale dodaje się do pośredniej django który okazał HTTP_X_REAL_IP do REMOTE_ADDR. – Nixarn
Te oświadczenia pomogą Ci: proxy_redirect off; proxy_set_header X-Real-IP $ remote_addr; \t \t proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; \t proxy_set_header X-Scheme $ scheme; – glarrain