部署总览 将 Django 部署到云服务器通常采用Nginx + WSGI 服务器(Gunicorn 或 uWSGI)的架构:Nginx 负责接收请求、处理静态资源并反向代理动态请求,WSGI 服务器承载 Django 应用。此方式具备可扩展、高可用与成本可控等优势,适合从小规模到生产级的场景。
准备与发布流程
pip install -r requirements.txt(确保包含 gunicorn 或 uwsgi)。settings.py 中配置数据库 ENGINE/NAME/USER/PASSWORD/HOST/PORT;执行迁移:python manage.py migrate。settings.py:STATIC_URL、STATIC_ROOT、MEDIA_URL、MEDIA_ROOT;执行收集静态:python manage.py collectstatic --noinput。wsgi.py 正常;用 WSGI 服务器启动应用进行验证(见下文示例)。/ 代理到 WSGI 服务,将 /static/、/media/ 指向对应目录;重载 Nginx 配置并测试访问。关键配置示例
/home/myblog/test.py:def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
uwsgi --http :8001 --wsgi-file test.py,浏览器访问 http://服务器IP:8001 应看到 “Hello World”。gunicorn --bind 127.0.0.1:8000 myproject.wsgi:applicationserver {
listen 80;
server_name your_domain_or_IP;
location /static/ {
alias /path/to/your/project/static/;
}
location /media/ {
alias /path/to/your/project/media/;
}
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
}
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/ && sudo nginx -s reloadsudo apt install apache2 libapache2-mod-wsgi-py3常见问题与排查
settings.py 中 STATIC_URL/STATIC_ROOT 与 collectstatic 是否执行;检查 Nginx alias 路径与文件系统权限(Nginx 需要对静态目录有读权限)。settings.py 的 ENGINE/NAME/USER/PASSWORD/HOST/PORT;确认数据库服务运行且允许来自应用主机的连接;云数据库需配置白名单/安全组。上线与运维建议
gunicorn 或 uwsgi --ini your.ini。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。