【发布时间】:2018-03-26 06:51:54
【问题描述】:
我只使用 Django 几个星期,刚刚学习了部署。我有一个 AWS EC2 实例,我可以将我的 Django 网站/应用程序部署到该实例(即,如果我在浏览器中访问 IP 地址,我就可以访问我的网站)。但是,我不知道如何将同一个网站部署到我在 AWS 上注册的域名。
我遵循 AWS 的文档 (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-ec2-instance.html),https://cachecheck.opendns.com/ 显示我的域名路由到我的 EC2 实例。但是,当我在浏览器中访问我的域名时,它会显示 400 Bad Request。当我设置 nginx 或 gunicorn 时,我还需要做些什么吗?我尝试将 nginx 代码中的 {{yourEC2.public.ip}} 替换为我的域名而不是 IP 地址。
我无法在网上找到任何其他关于域名部署的资源,尤其是 AWS。
这是我用于部署到 EC2 实例的内容:
settings.py:
DEBUG = False
ALLOWED_HOSTS = ['{{yourEC2.public.ip}}']
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
(venv) ubuntu@54.162.31.253:~myRepoName$ python manage.py collectstatic
独角兽
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/{{repoName}}
ExecStart=/home/ubuntu/{{repoName}}/venv/bin/gunicorn --workers 3 --bind
unix:/home/ubuntu/{{repoName}}/{{projectName}}.sock
{{projectName}}.wsgi:application
[Install]
WantedBy=multi-user.target
nginx:
server {
listen 80;
server_name {{yourEC2.public.ip}};
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/{{myRepoName}};
}
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/{{myRepoName}}/{{projectName}}.sock;
}
}
【问题讨论】:
-
你在Route53中创建了一个记录集,A记录到IP地址还是CName到EC2实例的公共域名?
-
@Ashan:是的,我创建了一个记录集并将值设置为我的 EC2 实例/IP 地址。 @Selcuk:是的,如果我输入我的 IP 地址,我的 Django 应用程序/网站就会出现。只是在输入域名时不起作用。我会尝试设置
ALLOWED_HOSTS。
标签: django amazon-web-services nginx amazon-ec2 deployment