在Django项目中配置自定义域名涉及服务部署与网络配置,需修改ALLOWED_HOSTS、反向代理及域名解析。以下是专业操作指南:

一、核心配置步骤
1. 修改ALLOWED_HOSTS:在settings.py中配置允许访问的域名,防止HTTP Host头攻击。
python # settings.py ALLOWED_HOSTS = ["yourdomain.com", "www.yourdomain.com"] # 生产环境 ALLOWED_HOSTS = ["*"] # 开发测试(高风险!禁止生产使用)2. 反向代理配置(以Nginx为例):通过Web服务器转发请求至Django应用服务。
nginx # Nginx 配置示例 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; } }二、关键参数对照表
| 参数 | 作用 | 典型值 |
|---|---|---|
| ALLOWED_HOSTS | 安全域名白名单 | ["example.com"] |
| SERVER_NAME (Nginx) | 监听的域名 | yourdomain.com |
| proxy_pass (Nginx) | 后端服务地址 | http://localhost:8000 |
三、拓展操作
1. HTTPS强制跳转:在Nginx中配置SSL并重定向HTTP流量:
nginx server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; }2. 多环境配置策略:通过环境变量区分开发/生产配置:
python # settings.py import os ALLOWED_HOSTS = os.environ.get('DJANGO_ALLOWED_HOSTS', 'localhost').split(',')3. CSRF保护配置:启用HTTPS后需同步更新:
python CSRF_TRUSTED_ORIGINS = ['https://yourdomain.com'] SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')四、调试命令
启动Django服务时显式绑定域名(开发测试):
bash python manage.py runserver 0.0.0.0:8000注意:正式环境必须使用Gunicorn/uWSGI配合Web服务器部署,直接运行runserver存在安全风险。

查看详情

查看详情