我正在ec2实例上构建django Web应用程序,该实例位于自动伸缩组中,并带有Application Load Balancer。
我已经配置了uwsgi和nginx并在运行命令时
uwsgi --socket /tmp/uwsgi.sock --module MyProject.wsgi --chmod-socket=666 --virtualenv /path/to/my/virtual/env/
当我通过IP地址访问应用程序时,一切都很好。我可以导航到该站点,并且一切正常。
但是,当我尝试使用我通过Route 53拥有并注册的域名通过URL访问网站时,该网站的功能可以正常使用并正在提供服务,但是静态内容(css文件等)却无法使用渲染。
我的Auto-Scaling小组说该实例运行正常。目标人群说目标是健康的。 ALB正在侦听端口80和443,并将流量转发到目标组。
有人知道为什么即使通过公共IP地址直接访问静态域名时,仍无法显示静态域名吗?
答案 0 :(得分:1)
听起来您的静态内容网址无法解析到您的域。您应该检查模板上给出的url是否正确,然后确保正确设置了nginx以便从该位置提供内容。
server {
root /www/data;
location /static/ { # serve files from /www/data/static/ to /static/
}
}
https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/
您可能还希望参考django静态文件doc,也许您需要确保设置正确才能映射到正确的url。
https://docs.djangoproject.com/en/2.1/howto/static-files/deployment/
我建议配置您的实例以从s3提供静态内容,因为如果您有多个需要同步其静态/媒体文件的服务器实例,这样做会更有意义。