Django 应用程序公共 IP 可以工作,但记录更新时出现“400 Bad Request Error”

twk*_*twk 5 nginx a-record django amazon-ec2 amazon-web-services

我使用 nginx 和 Gunicorn 在 Ubuntu 16.04 EC2 实例上部署了 Django 应用程序。

不幸的是,在使用我的公共 IP 成功部署后,使用公共 IP 更新我的 A 记录产生了404 Bad Request在我的域中产生错误 - 即使在等待很长时间以确保 DNS 更改传播之后也是如此。通过公共 IP 访问应用程序仍然有效。我确实联系了我的名称服务器主机,以确认我是否正确设置了 A 记录设置:他们说 DNS 更改似乎成功,但无能为力,因为这似乎是 AWS 方面的问题。

是否有特定原因导致在我的 A 记录中使用我的公共 IP 无法正常工作且未指向我的应用程序?

感谢任何能够帮助我让我的域成功指向我部署的 django 项目的人。目前,通过公共 IP 访问应用程序仍然可以正常工作,A 记录似乎已更新,但任何加载域(而不是直接 IP)的尝试都会呈现 400 Bad Request 错误。

twk*_*twk 5

我想出了一个解决办法。看起来使用公共 IP 确实是可以接受的,但我未能将域名添加到文件ALLOWED_HOSTS和 nginx 配置中。

通过执行以下操作,我能够使我的域成功指向我的 AWS EC2 部署:

我做了三件事:

  • 首先,我更新了我的ALLOWED_HOSTS
    • ALLOWED_HOSTS = ['12.345.67.890', 'sub.domain.com', 'www.sub.domain.com']
  • 然后,我还在 nginx 配置中编辑了 server_name 设置:
    • server_name 12.345.67.890 sub.domain.com www.sub.domain.com;
  • 最后,我重新启动了 nginx 并重新启动了机器以确保一切正常:
    • sudo service nginx restart
    • sudo reboot

之后,我的页面加载成功。