【问题标题】:Why is Django sending me Invalid HTTP_HOST header with my server IP?为什么 Django 向我发送带有我的服务器 IP 的无效 HTTP_HOST 标头?
【发布时间】:2014-02-11 11:04:38
【问题描述】:

所以 Django 正在向我发送包含以下信息的邮件:

[Django] ERROR: Invalid HTTP_HOST header: '<my server IP here>'.You may need to add u'<my server IP here>' to ALLOWED_HOSTS.

No stack trace available

Request repr() unavailable.

问题是...您无法使用服务器 IP 访问我的网站,因为我只允许已在 ALLOWED_HOST 设置中的域。

那么...我该怎么办?

编辑:我正在使用 Nginx -> Gunicorn。这个错误只是偶尔发生,比如每周 1-2 次。

【问题讨论】:

  • 可能是因为您在代理到django之前没有设置header,请添加您的虚拟主机配置文件并描述您的服务器结构,如果它有什么特别之处。
  • 这种情况并不经常发生,因此很难找到错误消息的原因。无论如何,我正在使用 Nginx -> Gunicorn -> Django

标签: django logging nginx


【解决方案1】:

找到原因了。

当有人试图通过 HTTPS 上的 IP 访问服务器时,如 https://(和 server-ip)

解决方案是禁用该选项。

Nginx 的解决方案:

server {
    listen      80;
    listen      443 ssl;
    ssl_certificate    /etc/ssl/example.crt;
    ssl_certificate_key    /etc/ssl/example.key;
    return      444;
}

【讨论】:

  • 这发生在我身上。你是如何禁用它的?
  • 这取决于您使用的网络服务器。我正在使用 Nginx,所以我编辑了 nginx.conf 并禁用了它。
  • 出现此错误消息的另一个原因:stackoverflow.com/questions/22416027/…
  • @spindel 如果您在回答中提供了解决方案,它将对未来的用户有所帮助。
  • 你是如何在 nginx 中禁用它的?
猜你喜欢
  • 2016-01-10
  • 2013-02-20
  • 2015-06-17
  • 2019-09-29
  • 2014-04-20
  • 2017-03-27
  • 1970-01-01
  • 2016-07-11
相关资源
最近更新 更多