江门恒阳网站建设,建站公司一般用什么框架,宿豫建设局网站,上海公司注册查名官网Django项目部署-uWSGIDjango运维部署框架整体部署架构web服务器与web应用服务器的区别部署环境准备安装python3安装mariadb安装Django和相关模块Django托管服务器uWSGI使用uWSGI配置使用Django运维部署框架
整体部署架构 操作系统: Linux 。优势#xff1a;生态系统丰富…
Django项目部署-uWSGIDjango运维部署框架整体部署架构web服务器与web应用服务器的区别部署环境准备安装python3安装mariadb安装Django和相关模块Django托管服务器uWSGI使用uWSGI配置使用Django运维部署框架
整体部署架构 操作系统: Linux 。优势生态系统丰富程序支持度高如docker在linux的性能就比在windows好
数据库: Mariadb / Mysql。优势开源性能强劲的关系型数据库
前端web服务器: Nginx
后端app服务器: uWSGI
web服务器与web应用服务器的区别
Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。web服务器专注http请求的处理与返回通用性如nginx和apache可以处理所有http请求然后返回静态文件内容
Web应用服务器是通过很多协议来为应用程序提供(serves)商业逻辑,具备解释服务端代码能力。Web应用服务器专注程序框架和动态内容的处理专用性如tomcat只能处理java程序而不能处理python程序
简单归纳一下两者的区别 web服务器专注提供静态文件内容web应用app服务器专注提供动态内容
常见的 web服务器 、web应用服务器
软件名词是否Web服务器是否app服务器IIS是是Nginx是否Apache是否Tomcat是是Jetty是是WebSphere是是WebLogic是是uWSGI否是
部署环境准备
安装python3
卸载原有Python3
whereis python3 |xargs rm -frv重新安装python3新建一个脚本文件
CentOS7-installpython3.sh
#!/bin/sh
yum groupinstall -y Development tools
yum install -y sqlite-devel ncurses-devel ncurses-libs zlib-devel mysql-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl-devel libffi-devel
curl -O -sSL https://npm.taobao.org/mirrors/python/3.8.10/Python-3.8.10.tar.xz xz -d Python-3.8.10.tar.xz tar xvf Python-3.8.10.tar
cd Python-3.8.10
./configure
make make install
cd ..
rm -rf Python-3.8.10 Python-3.8.10.tar.xz执行该脚本
安装mariadb
可参考该篇文章https://blog.csdn.net/qq_44614026/article/details/128735494?spm1001.2014.3001.5502
安装Django和相关模块
导出项目需要安装的模块pip freeze requirements.txt
安装需要的模块pip install -r requirements.txt
python manage.py runserver 检查django相关的模块是否安装好
Django托管服务器uWSGI
uWSGIWeb Server Gateway Interface
WSGI是Web服务器网关接口。属于web服务器和应用程序之间的通信协议uwsgi协议是uWSGI服务器使用的本地协议。它是一个二进制协议可以携带任何类型的数据。属性线路协议。uWSGI是一个全功能的HTTP服务器实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把HTTP协议转化成语言支持的网络协议。比如把HTTP协议转化成WSGI协议让Python可以直接使用。
uWSGI文档中文版https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Download.html
使用uWSGI
配置
安装 pip install uwsgi
在项目根目录下创建一个uwsgi.ini文件
[uwsgi]
chdir /data/project/autotpsite/
// 项目根目录
module autotpsite.wsgi:application
// 指定wsgi模块下的application对象
http 0.0.0.0:8888
// 对本机8888端口提供服务
master true
// 主进程
pidfile /data/project/autotpsite/uwsgi8888.pid
// pid 文件用于脚本启动停止该进程
daemonize /data/project/autotpsite/uwsgi_server.log
// 日志文件在sqtp应用目录下的apps.py文件下增加path配置
from django.apps import AppConfigclass SqtpConfig(AppConfig):default_auto_field django.db.models.BigAutoFieldname sqtppath ./autotpsite/sqtp # 增加path配置使用
启动: uwsgi xxx.ini # ini是配置文件保存启动项参数
重启: uwsgi –-reload xxx.pid # pid是进程文件
停止: uwsgi --stop xxx.pid执行命令uwsgi uwsgi.ini会提示[uWSGI] getting INI configuration from uwsgi.ini说明读取配置文件启动成功 通过ls命令可以看到项目根目录下生成了uwsgi8888.pid和uwsgi_server.log文件
在浏览器中输入IP:8888/login.html如果展示登录页面说明项目部署成功
后续使用如果出现-bash: uwsgi: command not found
则需要对uwsgi创建软连接
find / -name uwsgi
# 找到uwsgi执行位置
/usr/local/python3/bin/uwsgi
# uwsgi所在位置
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
# 建立软链接软连接起作用后uwsgi命令可正常使用