Django 上传Linux服务器,项目部署

首先保证有在centos操作环境下,之前电脑装过虚拟机,里面也有Python2和Python3共存;在此基础上,
通过Xshell连接虚拟机
Django 上传Linux服务器,项目部署_第1张图片
Django 上传Linux服务器,项目部署_第2张图片
Django 上传Linux服务器,项目部署_第3张图片
在这里插入图片描述
连接成功
Django 上传Linux服务器,项目部署_第4张图片
安装django环境

导出django的开发环境
有以下依赖包
Django 上传Linux服务器,项目部署_第5张图片
激活虚拟环境 导出当前环境的所有第三方包 导入到txt文件中,使django能在linux服务器下运行

pip freeze > package.txt

Django 上传Linux服务器,项目部署_第6张图片
上传该txt文件到服务器进行批量下载 放在/opt目录下
在这里我们用Xftp5来上传文件
Django 上传Linux服务器,项目部署_第7张图片
Django 上传Linux服务器,项目部署_第8张图片
将文件从客户端上传到服务器,进行批量下载
Django 上传Linux服务器,项目部署_第9张图片
在/opt下批量下载,这是一个系统预留给我们的文件夹,用来安装一些包,配置文件的
Django 上传Linux服务器,项目部署_第10张图片
Django 上传Linux服务器,项目部署_第11张图片

2.上传django项目(下载完成后将我们要上传服务器的项目传到linux上)
将django项目放在 /opt 下
Django 上传Linux服务器,项目部署_第12张图片

项目测试

systemctl stop firewalld   # 关闭防火墙(如果是购买的如阿里云服务器不需要进行此操作)
修改 sttings⽂件,修改 ALLOWED_HOSTS = ['*'] 允许所有的主机访问
启动项目
python3 manage.py runserver 0.0.0.0:8000

Django 上传Linux服务器,项目部署_第13张图片
Django 上传Linux服务器,项目部署_第14张图片
Django 上传Linux服务器,项目部署_第15张图片

然后在客户端进行访问,看是否能访问成功 服务器ip:8000 此时发现访问失败,报如下错误
Django 上传Linux服务器,项目部署_第16张图片
得去修改配置文件
Django 上传Linux服务器,项目部署_第17张图片
Django 上传Linux服务器,项目部署_第18张图片
Django 上传Linux服务器,项目部署_第19张图片
Django 上传Linux服务器,项目部署_第20张图片
再重启服务,通过以下来访问

10.10.107.20:8000

Django 上传Linux服务器,项目部署_第21张图片
Django 上传Linux服务器,项目部署_第22张图片
报错,图片找不到,不能使用中文名
修改完成后,再访问
Django 上传Linux服务器,项目部署_第23张图片

3 安装uwsgi
上⾯我们已经完成了python+Django环境的部署,接下来我们需要了解python 的uwsgi框架。
Python manager.py runserver, 这只是一款适合开发阶段使用的服务器,只支持最高200的并发量;不适合在生产中使用。我们在生产过程中,通常会遇到apache或者nginx服务器作为Django的生产服务器。
以nginx为例,在部署之前,我们先要掌握在Django和nginx之间的一个程序,就是wsgi,web服务器网关接口,英文名叫 Web Server Gateway Interface ,缩写WSGI,Python应用程序或框架和web服务器之间的一种接口

1 安装配置uwsgi
在 /usr/local/python3/bin/ 目录下安装uwsgi

pip3 install uwsgi

Django 上传Linux服务器,项目部署_第24张图片
创建软连接(软连接就是我们在任何路径下都可以使用uwsgi命令)

ln /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

测试uwsgi(要在manage.py同一级目录下,相当于python manage.py runserver)

uwsgi --http 192.168.1.69:8000 --file OurBlog/wsgi.py --static-map=/static=static

http后加ip:端口号,–file 后面为你的项目名
启动成功
Django 上传Linux服务器,项目部署_第25张图片
在项目的主⽬录(manage.py)
uwsgi --http 10.10.14.180:80 --file Qshop/wsgi.py --static-map=/static=static
上述方法可以实现uwsgi驱动django,但是在工作当中,开发者更改配置文件的形式启动uwsgi

在/opt目录下创建script,在script下创建uwsgi.ini文件,并进入编写

cd /opt
mkdir script
cd script
touch uwsgi.ini

Django 上传Linux服务器,项目部署_第26张图片
编写uwsgi.ini文件

[uwsgi]
chdir=/opt/Qshop #项目目录
module=Qshop.wsgi:application #指定项⽬的application
socket=/opt/script/uwsgi.sock #指定sock的文件路径
workers=5 #进程个数
pidfile=/opt/script/uwsgi.pid
http=10.10.107.20:80 #指定IP端⼝
static-map=/static=/opt/Qshop/static #指定静态⽂件
uid=root #用户
gid=root #组
master=true #启动主进程
vacuum=true #自动移除unix Socket和pid⽂件当服务停⽌的时候
enable-threads=true #启动线程
thunder-lock=true #序列化接受的内容,如果可能的话
harakiri=30 #设置⾃中断时间
post-buffering=4096 #设置缓冲
daemonize=/opt/script/uwsgi.log #设置日志目录

Django 上传Linux服务器,项目部署_第27张图片
启动uwsgi

cd /opt/script
uwsgi --ini uwsgi.ini ## 使用ini文件启动uwsgi

Django 上传Linux服务器,项目部署_第28张图片
使用浏览器访问 成功
Django 上传Linux服务器,项目部署_第29张图片
停止uwsgi

pkill -9 uwsgi

Django 上传Linux服务器,项目部署_第30张图片
服务器访问失败
Django 上传Linux服务器,项目部署_第31张图片
4. 安装NGINX
下载NGINX包(在/opt目录下)

wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

Django 上传Linux服务器,项目部署_第32张图片
解压NGINX包

tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure \
make && make install

在这里插入图片描述
在这里插入图片描述
Django 上传Linux服务器,项目部署_第33张图片
在这里插入图片描述

创建软链接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

在这里插入图片描述
启动nginx查看效果

nginx

启动
Django 上传Linux服务器,项目部署_第34张图片
浏览器访问(80端⼝)查看 (nginx默认是80端口)
Django 上传Linux服务器,项目部署_第35张图片
Django 上传Linux服务器,项目部署_第36张图片
5. 修改NGINX的配置文件
找到配置文件

cd /usr/local/nginx/conf/

Django 上传Linux服务器,项目部署_第37张图片
为防止改错或删除配置文件,都要对其进行备份
进行配置文件备份(一般备份名都是.bak结尾)

cp nginx.conf nginx.conf.bak

Django 上传Linux服务器,项目部署_第38张图片
具体配置如下:

 vi nginx.conf

注释放开
Django 上传Linux服务器,项目部署_第39张图片
Django 上传Linux服务器,项目部署_第40张图片
修改server段
Django 上传Linux服务器,项目部署_第41张图片
修改前
Django 上传Linux服务器,项目部署_第42张图片
修改后
Django 上传Linux服务器,项目部署_第43张图片
Django 上传Linux服务器,项目部署_第44张图片
Django 上传Linux服务器,项目部署_第45张图片
上面有一个必须改为如下(或者添加多级目录)
Django 上传Linux服务器,项目部署_第46张图片
先查看nginx是否运行,运行就给他关了

nginx -s stop  # 停止nginx

Django 上传Linux服务器,项目部署_第47张图片
运行nginx (报错,缺少目录文件,创建)
Django 上传Linux服务器,项目部署_第48张图片
Django 上传Linux服务器,项目部署_第49张图片
检测是否成功

nginx -t

加粗样式
保证NGINX和uwsgi全部停止,然后重新启动
Django 上传Linux服务器,项目部署_第50张图片
启动uwsgi和nginx ,先uwsgi后nginx
切换到如下路径启动
Django 上传Linux服务器,项目部署_第51张图片

uwsgi --ini uwsgi.ini
nginx

Django 上传Linux服务器,项目部署_第52张图片
成功
Django 上传Linux服务器,项目部署_第53张图片
Django 上传Linux服务器,项目部署_第54张图片
80端口可以访问,因为nginx默认80端口
Django 上传Linux服务器,项目部署_第55张图片
Django 上传Linux服务器,项目部署_第56张图片
此时8000端口也能访问到,因为uwsgi可以访问,
修改uwsgi.ini (切换到/opt/script 下修改ip)
Django 上传Linux服务器,项目部署_第57张图片
修改http=127.0.0.1:8000 不允许外网通过ip+8000 端口直接访问django服务
Django 上传Linux服务器,项目部署_第58张图片
完成部署

你可能感兴趣的:(#,python,web开发)