在负载均衡器(ELB)后面的Django中检索主机名

时间:2014-03-27 10:32:51

标签: django amazon-ec2

我已经开始关注这个问题2天并且无法摆脱它...我有一个基于类的视图,我需要使用完整的主机名(跳过原因,请相信我),我的代码工作正常,直到我部署到位于ELB后面的EC2实例。

到目前为止尝试了几种没有成功的方法,这就是我尝试过的方法:

  • get_context_data

    中的基本CBV注入
    context['host_name'] = self.request.get_host()
    

    作为django docs say,如果在多个代理后面并且建议为其实现中间件,则会失败

  • 中间件,完全按照django docs中的说明启用该类,在本地工作正常但在AWS上没有任何反应

  • 使用套接字,因此在get_context_data做类似的事情:

    import socket
    context['host_name'] = socket.gethostname()
    

    即使在localhost上也会失败,检索操作系统设置的机器名称

我的最后一个资源是在我的设置中硬编码,它会起作用,但我不是它的忠实粉丝。还有其他聪明的想法吗?

0 个答案:

没有答案