2010-12-22 41 views
11

我有一個web服務器設置gunicorn和nginx和Django。Django獲取IP只返回127.0.0.1

我遠程訪問它,以及與此: 高清testIP(請求): IP_ADDRESS = utils.get_ip(請求)

我只是不斷收到127.0.0.1的IP地址,就像我說的,我遠程訪問它,因此它不應該給本地地址。

我認爲這可能與gunicorn有關,但我想首先查看這裏是否有任何見解。

+0

你如何將nginx連接到gunicorn? – 2010-12-22 18:27:06

回答

24

get_ip()如何工作?

如果nginx是一個反向代理,並且gunicorn是應用程序服務器,它總是從本地機器上獲取來自nginx的請求。

是nginx的發送到應用服務器的真實IP通過nginx的的c​​onf線proxy_set_header X-Real-IP $remote_addr;

所以,你可能需要設置是在我的情況HTTP_X_REAL_IP,並在您的Django應用程序;對於不同的頭球攻門被或者使用你的新IP頭或集request.META['REMOTE_ADDR'] = request.META['HTTP_X_REAL_IP']

+0

謝謝。那樣做了! – DantheMan 2010-12-22 18:38:17

相關問題