django 绑定域名
- 行业动态
- 2025-02-10
- 2093
在Django中绑定域名需三步:1. 修改settings.py的ALLOWED_HOSTS,添加域名(如[‘example.com’]);2. 配置Web服务器(如Nginx),设置server_name为域名,并将请求代理到Django应用(如使用proxy_pass到127.0.0.1:8000);3. 域名解析到服务器IP。若需HTTPS,还需在Web服务器配置SSL证书。部署后重启Nginx服务生效。
为何需要绑定域名?
当使用 Django 开发的 Web 应用从本地测试环境迁移到线上服务器时,绑定域名是必经步骤,通过域名访问网站,不仅能提升品牌形象,还能让用户更便捷地找到服务,本文将从基础配置到生产环境实践,逐步讲解 Django 项目如何正确绑定域名。
第一步:域名解析与服务器准备
1、购买并配置域名
在域名服务商(如阿里云、酷盾安全(kdun.cn))购买域名后,进入域名管理后台,添加一条A 记录
,将域名指向服务器公网 IP。
记录类型:A 主机记录:@ 或 www 记录值:123.45.67.89(你的服务器IP)
2、确保服务器环境就绪
确认服务器已安装 Web 服务器(如 Nginx 或 Apache)。
检查防火墙是否开放 80(HTTP)和 443(HTTPS)端口:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
第二步:配置 Django 项目
1、修改ALLOWED_HOSTS
在 Django 的settings.py
中,添加域名以允许合法请求:
ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com']
若处于测试阶段,可暂时设置为通配符(不推荐生产环境使用):
ALLOWED_HOSTS = ['*']
2、静态文件与媒体文件处理
确保STATIC_URL
和MEDIA_URL
配置正确,并通过 Web 服务器代理:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
第三步:Nginx 反向代理配置(以 Ubuntu 为例)
1、创建 Nginx 配置文件
在/etc/nginx/sites-available/
下新建文件yourdomain.conf
:
server { listen 80; server_name yourdomain.com www.yourdomain.com; location / { proxy_pass http://127.0.0.1:8000; # 指向 Django 运行端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /static/ { alias /path/to/your/staticfiles/; } location /media/ { alias /path/to/your/media/; } }
2、启用配置并重启 Nginx
sudo ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/ sudo nginx -t # 检查语法 sudo systemctl restart nginx
第四步:HTTPS 强化安全性
1、申请 SSL 证书
使用 Certbot 自动获取 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
2、自动续期配置
证书默认有效期为 90 天,添加定时任务:
sudo crontab -e # 添加以下行 0 0 */60 * * certbot renew --quiet
常见问题排查
域名无法访问
检查 DNS 解析是否生效(使用dig yourdomain.com
或在线工具)。
Nginx 报 502 错误
确认 Django 服务是否运行(gunicorn
或uWSGI
需绑定到正确端口)。
静态文件加载失败
确保STATIC_ROOT
已通过collectstatic
生成,且 Nginx 路径权限正确。
绑定域名是 Django 项目上线的核心步骤之一,通过合理配置 DNS、Web 服务器和 Django 自身参数,结合 HTTPS 加密,不仅能提升用户体验,还能增强搜索引擎的信任度,定期检查服务器日志与证书状态,可确保服务长期稳定运行。
引用说明
1、[Nginx 官方文档](https://nginx.org/en/docs/)
2、[Django 部署指南](https://docs.djangoproject.com/en/4.2/howto/deployment/)
3、[Let’s Encrypt 证书申请](https://certbot.eff.org/)
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/120672.html