我在一个有很多 IP 地址的主机上运行一个临时的 Django 应用程序。使用时manage.py runserver 0.0.0.0:5000
,代码如何查看机器的众多 IP 地址中的哪一个是请求实际命中的地址,如果这可能的话?
或者换一种说法:
我的主机有 IP 地址10.0.0.1
和10.0.0.2
. 当 runserver 正在侦听时0.0.0.0
,我的应用程序如何知道用户是否点击http://10.0.0.1/app/path/etc
或http://10.0.0.2/app/path/etc
?
我知道如果我使用 Apache 执行此操作,我可以使用 Apache 环境变量SERVER_ADDR
,但我没有使用 Apache。
有什么想法吗?
编辑
更多信息:
我正在使用一个小型 Django 应用程序测试负载均衡器。这个应用程序正在侦听多个不同的 IP,我需要知道哪个 IP 地址针对来自负载平衡器的请求而命中,这样我才能确保它正确平衡。
我无法使用request.get_host()
或request.META
选项,因为它们返回用户键入的内容以达到负载平衡器。
例如:用户点击http://10.10.10.10/foo
并将请求转发到http://10.0.0.1/foo
or http://10.0.0.2/foo
- 但request.get_host()
将返回10.10.10.10
,而不是服务器正在侦听的实际 IP。
谢谢,本