uWSGI 配置 python django 进行发布

1.准备工作

注册并登录到你的云服务器提供商(如 AWS、阿里云等)并创建一个 Linux 实例。

安装 SSH 客户端(如 PuTTY)并连接到你的云服务器。

2.更新服务器

更新服务器上的软件包:

bash 复制代码
sudo apt update
sudo apt upgrade

3.安装 Python 和 pip

bash 复制代码
sudo apt install python3 python3-pip python3-venv

4. 创建虚拟环境

bash 复制代码
python3 -m venv myenv
source myenv/bin/activate

5. 安装 Django 和其他依赖

bash 复制代码
pip install django
pip install djangorestframework
pip install uwsgi

也可以通过requirements.txt 文件进行安装

6.配置 Django 项目

将你的 Django 项目代码上传到服务器,并导航到项目目录。然后进行以下配置:

修改 settings.py 文件

bash 复制代码
ALLOWED_HOSTS = ['*', 'your_server_ip']
bash 复制代码
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

运行数据库迁移

bash 复制代码
python manage.py makemigrations
python manage.py migrate

收集静态文件

bash 复制代码
python manage.py collectstatic

7. 配置 uWSGI

创建一个 uwsgi.ini 配置文件:

bash 复制代码
[uwsgi]
chdir = /path/to/your/project
module = myproject.wsgi:application
home = /path/to/your/virtualenv
master = true
processes = 5
socket = /path/to/your/project.sock
chmod-socket = 660
vacuum = true
die-on-term = true

8. 创建 uWSGI 服务文件

bash 复制代码
sudo nano /etc/systemd/system/uwsgi.service

添加以下内容:

bash 复制代码
[Unit]
Description=uWSGI service
After=network.target

[Service]
User=your_user
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/virtualenv/bin/uwsgi --ini /path/to/your/project/uwsgi.ini

[Install]
WantedBy=multi-user.target

启用并启动 uWSGI 服务:

bash 复制代码
sudo systemctl start uwsgi
sudo systemctl enable uwsgi

9. 安装 Nginx

bash 复制代码
sudo apt install nginx

10. 配置 Nginx

配置 Nginx 以代理请求到 uWSGI:

bash 复制代码
sudo nano /etc/nginx/sites-available/myproject

添加以下配置:

bash 复制代码
server {
    listen 80;
    server_name your_domain.com your_server_ip;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/path/to/your/project.sock;
    }

    location /static/ {
        alias /path/to/your/project/static/;
    }
}

启用该配置并重启 Nginx:

bash 复制代码
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

11. 设置防火墙

bash 复制代码
sudo ufw allow 'Nginx Full'
sudo ufw enable
相关推荐
用户83562907805112 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
用户83562907805112 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
你好潘先生20 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师20 小时前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码20 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
copyer_xyf20 小时前
FastAPI 如何连接 MySQL
后端·python
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户8356290780511 天前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent2 天前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m6252 天前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python