AI智能
改变未来

Django项目的部署

Django的项目部署方式有多种,本文主要讲的是基于wsgi协议的部署
即 django + uwsgi + nginx 手动部署

部署项目的准备工作

  1. 在项目的根下,新建一个requirements.txt文件,文件的内容是项目需要安装的依赖
Django == 3.0.7PyMySQL == 0.9.3mysqlclient == 1.4.6
  1. 不使用Git版本工具的情况下,需要手动复制项目
    去掉项目中的 .idea, venv等不相干的文件
  2. 修改项目的配置文件settings.py
DEBUG = TrueALLOWED_HOSTS = [\"*\"]DATABASES = [需要的话做修改即可]
  1. 打开Linux操作系统
    将调整好的项目,放到Linux服务器上
    在ssh工具中alt+p进入之后用put上传文件

  2. 设置pip镜像
    在当前用户的根下,新建一个.pip文件 mkdir ~/.pip

  3. 在Linux操作系统下进入项目的根
    cd ~/app/project_name
    在项目的根下安装虚拟环境

    sudo apt install python3-vene

    python3 -m venv venv

  4. 激活虚拟环境

    source ./app/bin/activate

  5. 安装django项目所需依赖

    pip install -r requirements.txt

  6. 安装uwsgi
    在项目的根下查看是否安装了uwsgi

    uwsgi

    ,如果没有,则选择安装

sudo apt install uwsgi-coresudo apt install uwsgi-plugin-python3
  1. 配置uwsgi
    在项目的根下新建一个uwsgi.ini文件,并配置其内容
[uwsgi]# 设置django项目的位置chdir=/home/sun/app/learn_test_backup# 设置wsgi协议的入口位置module=learn_test_backup.wsgi:application# 设置是否开启主进程master=True# 设置主进程的启动的程序文件pidfile=learn_test_backup.pid# 设置真空环境 用于清除uwsgi服务器在运行过程中产生的垃圾vacoum=True# 设置允许的最大请求数量max-requests = 5000# 设置uwsgi服务器在运行过程中产生的日志存放的位置daemonize=learn_test_backup.log# 设置django的环境(配置文件)env=\'DJANGO_SETTINGS_MODULE=learn_test_backup.settings# 设置访问django项目的ip和端口号socket=192.168.18.54:8000# 设置http的访问方式 **要注意socket和http要二选其一**# http = http://192.168.18.54:8000# 设置启动uwsgi的进程数processes=5# 设置项目的虚拟环境venv=/home/sun/app/learn_test_backup/venv# 设置python关联项plugin=python3
  1. 启动uwsgi服务器
# 启动uwsgi服务器uwsgi --ini uwsgi.ini# 关闭uwsgi服务器uwsgi --stop learn_test_backup.pid# 重启uwsgi服务器uwsgi --reload learn_test_backup# 查看uwsgi服务进程ps -ef|grep uwsgi# 杀死uwsgi进程sudo kill -9 进程号# 查看启动日志tail -f learn_test_backup.log

nginx的服务

nginx可以提供的一些服务:
1. 反向代理
2. 负载均衡
3. 动静分离
4. 地址重定向,主要用于地址的迁移
5. 防盗链,用于防止别人盗取网站的资源
6. 正向代理,多用于实现访问一些国内受限制的网址

nginx的安装

  1. 安装nginx
    sudo apt install nginx
  2. 访问nginx
    直接进入linux的ip地址,如出现如下图片,则说明安装成功且ngnix正在工作
  3. 查看nginx的位置
/var/log/nginx  存放nginx的运行日志/usr/sbin/nginx  nginx的启动命令/etc/nginx  nginx配置文件所在的位置
  1. nginx的配置文件 nginx.conf
# include /etc/nginx/conf.d/*.conf;# include /etc/nginx/sites-enabled/#server{listen 80 ;server_name IP地址 ;location / {uwsgi_pass IP地址:8000 ;include uwsgi_params ;}}
  1. 重启nginx服务
    sudo nginx -s reload
  2. 配置静态资源的位置
# include /etc/nginx/conf.d/*.conf;# include /etc/nginx/sites-enabled/#server{listen 80 ;server_name IP地址 ;location / {uwsgi_pass IP地址:8000 ;include uwsgi_params ;}location /static/ {alias 静态资源目录存放的地址}}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Django项目的部署