Django项目部署以及nginx配置
项目部署
文章目录
- 项目部署
- uWSGI 网关接口配置 (ubuntu 18.04 配置)
- nginx 及反向代理配置
- nginx 配置静态文件路径
项目部署是指在软件开发完毕后,将开发机器上运行的开发板软件实际安装到服务器上进行长期运行
部署要分以下几个步骤进行
在安装机器上安装和配置同版本的环境
django 项目迁移
$ sudo scp 当前项目源代码 远程主机地址和文件夹
sudo scp /home/tarena/django/mysite1 root@88.77.66.55:/home/root/xxx 请输入root密码:
用 uwsgi 替代
python3 manage.py runserver
方法启动服务器配置 nginx 反向代理服务器
用nginx 配置静态文件路径,解决静态路径问题
uWSGI 网关接口配置 (ubuntu 18.04 配置)
WSGI (Web Server Gateway Interface)Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛使用
使用
python manage.py runserver
通常只在开发和测试环境中使用。当开发结束后,完善的项目代码需要在一个高效稳定的环境中运行,这时可以使用WSGI
uWSGI是WSGI的一种, 它实现了 http协议 WSGI协议 以及 uwsgi协议
安装uWSGI
终端输入如下命令
sudo pip3 install uwsgi==2.0.18 -i https://pypi.tuna.tsinghua.edu.cn/simple/
检查是否安装成功
sudo pip3 freeze|grep -i 'uwsgi' #如果成功安装,则会输出 uWSGI==2.0.18
配置uWSGI
添加配置文件
项目同名文件夹/uwsgi.ini
- 如: mysite1/mysite1/uwsgi.ini
[uwsgi] # 套接字方式的 IP地址:端口号 # socket=127.0.0.1:8000 # Http通信方式的 IP地址:端口号 http=127.0.0.1:8000 # 项目当前工作目录 chdir=/home/tarena/.../my_project 这里需要换为项目文件夹的绝对路径 # 项目中wsgi.py文件的目录,相对于当前工作目录 wsgi-file=my_project/wsgi.py # 进程个数 process=4 # 每个进程的线程个数 threads=2 # 服务的pid记录文件 pidfile=uwsgi.pid # 服务的目志文件位置 daemonize=uwsgi.log # 开启主进程管理模式 master=true
修改settings.py将 DEBUG=True 改为DEBUG=False
修改settings.py 将ALLOWED_HOSTS = [] 改为ALLOWED_HOSTS = [‘网站域名’] 或者 [‘服务监听的ip地址’]
uWSGI的运行管理
启动 uwsgi
$ 进入到项目同名文件夹下 【即settings.py所在目录】 $ sudo uwsgi --ini uwsgi.ini
停止 uwsgi
$ 进入到项目同名文件夹下 【即settings.py所在目录】 $ sudo uwsgi --stop uwsgi.pid
说明:
当uwsgi 启动后,当前django项目的程序已变成后台守护进程,在关闭当前终端时此进程也不会停止。
若执行 stop 操作失败,则需要执行如下操作杀死进程
ps aux|grep 'uwsgi' -> 查看uwsgi进程tarena 103408 0.0 0.9 137172 39984 ? S 10:02 0:01 uwsgi --ini uwsgi.ini tarena 103410 0.0 0.9 436200 38552 ? Sl 10:02 0:00 uwsgi --ini uwsgi.inips -ef | grep 'uwsgi' | grep -v grep | awk '{print $2}' | xargs sudo kill -9
测试:
- 在浏览器端输入http://127.0.0.1:8000 进行测试
- 注意,此时端口号为8000
nginx 及反向代理配置
Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,在实践之中使用广泛。
C语言编写,执行效率高
nginx 作用
- 负载均衡, 多台服务器轮流处理请求
- 反向代理
原理:
客户端请求nginx,再由nginx 将请求转发 uWSGI 运行的django
ubuntu 下 nginx 安装
$ sudo apt install nginxvim /etc/apt/sources.list 更改国内源 sudo apt-get update
nginx 配置
- 修改nginx 的配置文件 /etc/nginx/sites-enabled/default
# 在server节点下添加新的location项,指向uwsgi的ip与端口。 server {...location / {uwsgi_pass 127.0.0.1:8000; # 重定向到127.0.0.1的8000端口include /etc/nginx/uwsgi_params; # 将所有的参数转到uwsgi下}... }
nginx服务控制
$ sudo /etc/init.d/nginx start|stop|restart|status # 或 $ sudo service nginx start|stop|restart|status
通过 start,stop,restart,status 可能实现nginx服务的启动、停止、重启、操作
修改uWSGI配置
- 修改
项目同名文件夹/uwsgi.ini
下的Http通信方式改为socket通信方式
[uwsgi] # 去掉如下 # http=127.0.0.1:8000 # 改为 socket=127.0.0.1:8000
- 重启uWSGI服务
进入到 项目同名文件夹下 $ sudo uwsgi --stop uwsgi.pid $ sudo uwsgi --ini uwsgi.ini
测试:
在浏览器端输入http://127.0.0.1 进行测试
注意 :
1,此时端口号为80(nginx默认值)
2,Django中有任何修改 需要重启 uwsgi , 否则修改不生效
- 修改
nginx 配置静态文件路径
创建新路径-主要存放Django所有静态文件 如: /home/tarena/项目名_static/
在Django settings.py 中添加新配置
STATIC_ROOT = '/home/tarena/项目名_static/static #注意 此配置路径为 存放所有正式环境中需要的静态文件
进入项目,执行 python3 manage.py collectstatic 。执行该命令后,Django将项目重所有静态文件 复制到 STATIC_ROOT 中 ,包括Django内建的静态文件【如admin后台的样式】
Nginx配置中添加新配置
# file : /etc/nginx/sites-enabled/default # 新添加location /static 路由配置,重定向到指定的 第一步创建的路径即可 server {...location /static {# root 第一步创建文件夹的绝对路径,如:root /home/tarena/项目名_static; }... }
Django项目部署以及nginx配置相关推荐
- Django项目部署 uwsgi+nginx 负载均衡
部署示意图 uwsig 第一步:安装uwsig pip install uwsgi 第二步:配置uwsgi 手动在项目根目录下新建文件uwsgi.ini [uwsgi]# 使用nginx连接时使用 # ...
- vue3 项目部署,Nginx配置https,重定向,详细流程
文章目录 前情提要 应用场景 安装 使用 实战解析 最后 前情提要 一个web项目完成后,我们需要打包部署上线,关于打包的实战在我的vite专栏里已经有过一些实践,今天我们来实践一些部署的过程,当然部 ...
- 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
如何将本地的Django项目部署到云服务器 开发环境 开发语言: Python 后台框架:Django 前端框架:bootstrap web服务器:nginx wsgi服务器:uwsgi 查看本地项目 ...
- Django项目部署在Centos7
把Django项目部署在Centos7下 先有一个Django项目 一个员工管理系统(ems) 员工管理系统 使用VMware创建一个虚拟的Linux系统 Centos7下安装MySql5.7 详细安 ...
- Django项目部署(nginx1.18+uwgsi)
Django项目部署: 9.1uwsgi 遵循wsgi协议的web服务器 9.1.1uwsgi的安装 pip install uwsgi 9.1.2uwsgi的配置 项目部署时,需要把settings ...
- 将Django项目部署到服务器
将Django项目部署到服务器 效果 准备云服务器 服务器链接xshell 安装宝塔 进入宝塔 添加站点 打包本地django文件上传 宝塔面板安装python管理器 django配置文件 配置数据库 ...
- pipenv 虚拟环境 Django项目部署
pipenv 虚拟环境 Django项目部署 1. 创建服务器 创建root 配置ssh 安装python3.7 pip3 ubuntu参考 https://blog.csdn.net/u014775 ...
- Django项目部署到阿里云服务器及后台常驻
本文将记述如何简单的将自己的Django项目部署到阿里云服务器上. 准备条件: 阿里云服务器:centos 7.5 Nginx(反向代理) Python 3.7.3 Django 2.2+注意:cen ...
- linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器
项目开发完成之后我们就需要将项目上线运行供用户访问,这时候我们就需要将项目部署到服务器上.对于Vue这种前端Web项目我们一般都部署在linux系统上,Linux常见的Web应用服务器有Apache. ...
- vue项目部署到nginx
vue项目部署到nginx 一.vue项目打包 修改config/index.js的assetsPublicPath为 ./(注意一定是build里面的,下面dev中也有这个配置) 这个路径的配置很重 ...
最新文章
- 基于poll实现的echo服务器
- 2018年安卓绿色联盟数据报告
- 常用的php开发工具有哪些?
- 29 个你必须知道的 Linux 命令
- linux 图片编辑 java_Java在Linux下 不能处理图形的解决办法 分享
- ASP.NET MVC 4 视图页去哪里儿
- Yum未完成事务问题
- 一分钟了解阿里云产品:弹性伸缩五大热点技术问题分析
- Eclipse中修改项目的文本字符集编码
- ONES 冯斌:从工程师到CTO,与不确定性和信息不完备为伴|ONES Talk
- 医疗相关计算机系统,智能医疗信息管理系统
- 测试开发大厂面试精选40题
- 正确的座机号码格式_固定电话的格式
- 马原复习思维导图-前三章
- JDK-8u131 软件安装教程
- 学术会议将变革?Hinton 呼吁 AI 界召开远程会议
- 商业模式-创新-增值价值
- 广东省第三届强网杯Writeup
- webService接口wsdl以byte[]方式上传附件
- Ubuntu16.04的安装教程