Django Nginx+uwsgi 安装配置
封面图
•
2025-10-15
•
Django教程
3
0
0
0
在使用 Django 项目时,通常会将 Nginx 作为反向代理服务器,而 uWSGI 作为 WSGI 服务器来处理 Python 应用。以下是 **Django + Nginx + uWSGI** 的安装与配置指南(基于 Ubuntu/Debian 系统)。 --- ## 🧰 一、环境准备 确保你已经安装了以下软件: - Python 3.x(推荐 3.8+) - pip - virtualenv 或 venv(可选) - nginx - uwsgi ### 安装依赖 ```bash sudo apt update sudo apt install python3-pip python3-venv nginx uwsgi uwsgi-plugin-python3 ``` --- ## 📁 二、创建 Django 项目(如果还没有) ```bash mkdir myproject cd myproject python3 -m venv venv source venv/bin/activate pip install django django-admin startproject mysite cd mysite ``` ### 配置数据库(可选) 编辑 `mysite/settings.py` 中的 `DATABASES` 部分,或使用默认的 SQLite。 ### 运行开发服务器测试 ```bash python manage.py runserver ``` 访问 http://127.0.0.1:8000/,确认 Django 正常运行。 --- ## 🔧 三、配置 uWSGI ### 创建 uWSGI 配置文件 在项目目录中创建 `uwsgi.ini` 文件: ```ini [uwsgi] chdir = /path/to/mysite module = mysite.wsgi:application master = true processes = 4 socket = /run/uwsgi/mysite.sock uid = www-data gid = www-data vacuum = true ``` > 注意:`/path/to/mysite` 替换为你的实际路径。 ### 启动 uWSGI ```bash uwsgi --ini uwsgi.ini ``` 你可以使用 systemd 来管理 uWSGI 服务(见下面章节)。 --- ## 🌐 四、配置 Nginx ### 创建 Nginx 虚拟主机配置文件 ```bash sudo nano /etc/nginx/sites-available/mysite ``` 内容如下: ```nginx server { listen 80; server_name your_domain.com; location / { include uwsgi_params; uwsgi_pass unix:/run/uwsgi/mysite.sock; } location /static/ { alias /path/to/mysite/static/; } } ``` > 替换 `your_domain.com` 和 `/path/to/mysite/static/` 为你的实际路径。 ### 启用站点并测试配置 ```bash sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx ``` --- ## ⚙️ 五、使用 systemd 管理 uWSGI(可选) 创建一个 systemd 服务文件: ```bash sudo nano /etc/systemd/system/uwsgi-mysite.service ``` 内容如下: ```ini [Unit] Description=uWSGI instance for mysite After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/path/to/mysite ExecStart=/path/to/venv/bin/uwsgi --ini uwsgi.ini [Install] WantedBy=multi-user.target ``` 然后启用并启动服务: ```bash sudo systemctl enable uwsgi-mysite sudo systemctl start uwsgi-mysite ``` --- ## ✅ 六、测试部署 访问你的域名(如 http://your_domain.com),应能看到 Django 页面。 --- ## 📌 常见问题 ### 1. 静态文件未加载? 确保在 `settings.py` 中设置了: ```python STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') ``` 然后运行: ```bash python manage.py collectstatic ``` ### 2. Nginx 报错 `No such file or directory`? 检查 uWSGI 的 socket 文件路径是否正确(`/run/uwsgi/mysite.sock`)。 ### 3. uWSGI 无法启动? 查看日志: ```bash journalctl -u uwsgi-mysite ``` --- ## 📚 参考资料 - [uWSGI 官方文档](https://uwsgi-docs.readthedocs.io/) - [Nginx 官方文档](https://nginx.org/en/docs/) - [Django 官方部署指南](https://docs.djangoproject.com/en/stable/howto/deployment/wsgi/uwsgi/) --- 如果你需要我帮你生成特定项目的配置文件,也可以告诉我你的项目结构和路径,我可以为你定制化生成配置。
上一篇:
Django 视图 - FBV 与 CBV
下一篇:
Dart语言简介
标题录入,一次不能超过6条
返回顶部
留言
留言
评论