allowed_host 更改无效

allowed_host changes not effective

我有一个地址 example.com 并将其添加到 allowed_hosts 列表中。但是当我访问该网站时,我得到 ALLOWED_HOSTS ['127.0.0.1', '::1', '178.XX.XX.XXX', 'xx80::xx81:xxx:xx3x:x12x%eth0']

在调试错误页面中,而实际 settings.py 文件读取 ['178.XX.XX.XXX','example.com']。我认为 settings.py 的更改未注册,因为我可以从列表中删除 178.XX.XX.XXX 并仍然访问该站点(清除浏览器缓存后) 我已经重新启动了 nginx、gunicorn 和整个服务器徒劳无功。整个事情是在 ubuntu 16.04 运行 django 1.8 上设置的,并使用 nginx 和 gunicorn。对 allowed_hosts 的这种覆盖可能来自哪里?

好吧,这很尴尬,但是 Digital Ocean 在 16.04 上的 django 一键安装在 settings.py 的末尾添加了一行,其中 ALLOWED_HOSTS 被重新定义。

# Find out what the IP addresses are at run time
# This is necessary because otherwise Gunicorn will reject the connections
def ip_addresses():
    ip_list = []
    for interface in netifaces.interfaces():
        addrs = netifaces.ifaddresses(interface)
        for x in (netifaces.AF_INET, netifaces.AF_INET6):
            if x in addrs:
                ip_list.append(addrs[x][0]['addr'])
    return ip_list

# Discover our IP address
ALLOWED_HOSTS = ip_addresses()
ALLOWED_HOSTS.append('.example.com') #I added this line

因此向该行添加一个附加项可以解决问题。