Django项目的部署
2020-07-15 18:03
113 查看
Django的项目部署方式有多种,本文主要讲的是基于wsgi协议的部署
即 django + uwsgi + nginx 手动部署
部署项目的准备工作
- 在项目的根下,新建一个requirements.txt文件,文件的内容是项目需要安装的依赖
Django == 3.0.7 PyMySQL == 0.9.3 mysqlclient == 1.4.6
- 不使用Git版本工具的情况下,需要手动复制项目
去掉项目中的 .idea, venv等不相干的文件 - 修改项目的配置文件settings.py
DEBUG = True ALLOWED_HOSTS = ["*"] DATABASES = [ 需要的话做修改即可 ]
-
打开Linux操作系统
将调整好的项目,放到Linux服务器上
在ssh工具中alt+p进入之后用put上传文件 -
设置pip镜像
在当前用户的根下,新建一个.pip文件 mkdir ~/.pip -
在Linux操作系统下进入项目的根
cd ~/app/project_name
在项目的根下安装虚拟环境
sudo apt install python3-vene
python3 -m venv venv
-
激活虚拟环境
source ./app/bin/activate
-
安装django项目所需依赖
pip install -r requirements.txt
-
安装uwsgi
在项目的根下查看是否安装了uwsgiuwsgi
,如果没有,则选择安装
sudo apt install uwsgi-core sudo apt install uwsgi-plugin-python3
- 配置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
- 启动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的安装
- 安装nginx
sudo apt install nginx
- 访问nginx
直接进入linux的ip地址,如出现如下图片,则说明安装成功且ngnix正在工作
- 查看nginx的位置
/var/log/nginx 存放nginx的运行日志 /usr/sbin/nginx nginx的启动命令 /etc/nginx nginx配置文件所在的位置
- 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 ; } }
- 重启nginx服务
sudo nginx -s reload
- 配置静态资源的位置
# 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 静态资源目录存放的地址 } }
相关文章推荐
- Django项目部署(阿里云)(1)--基本功能实现
- 在云服务器上部署Django项目后无法正常显示网页的原因
- Ubuntu+Django+uWSGI+Nginx部署Django项目
- Python3.6 使用 Docker 快速部署 Django2.0 项目到阿里云服务器上
- ubuntu下部署Django项目(成功)
- Apache部署django项目
- 在阿里ECS上采用Nginx+UWSGI部署Django项目
- Ubuntu系统使用apache部署多个django项目(python4.3)
- 在Apache上部署Django项目,初步
- windows + Apache + mod_wsgi 部署发布Django项目
- Apache部署django项目
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
- 使用k8s部署Django项目的方法步骤
- apache2部署多个django项目
- Django项目发布之Linux centos环境部署
- nginx + uwsgi 部署Django项目
- 解析Mac OS下部署Pyhton的Django框架项目的过程
- Django Nginx Gunicorn Centos7 环境部署,将项目上线
- 在nginx上部署django项目--------Gunicorn+Django+nginx+mysql
- uWSGI服务器部署Django项目