由于新冠疫情的缘故,公司要求员工停薪休假,赋闲在家的时候还是决定做点正事,学学习。

  本人Linux入门水平,Python入门水平,所以在网上找的那些python部署的帖子,看的是云里雾里的,也没有达到预期的运行效果。好不容易摸索了一个简单易懂的部署方式,记录一下为了加深理解。

  CentOS Linux release 7.6.1810 

  Python 2.7.5  # 系统自带的python版本  

  pip 20.0.2  # 已升过级

  查看系统版本

  # cat /etc/redhat-release

  CentOS Linux release 7.6.1810 (Core)

  # rpm -q centos-release

  centos-release-7-6.1810.2.el7.centos.x86_64

  1. 安装基础开发包

  yum groupinstall "Development tools"

  yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

  

  2.安装uwsgi

  pip install uwsgi

  uwsgi --version # 查看 uwsgi 版本

  

  在安装过程中可能会遇到上面的错误,执行“yum install python-devel.x86_64”可以应对。

   

  安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

  yum install libffi-devel

  然后从config开始重新安装

  3. 安装Django

  pip install django

  pip list   # 查看已经安装的模块

  

  4. 上传项目

  如果本地有自己的Django项目可以上传。我没有项目,只是在服务器上新建了一个,为了学习如何部署和运行。

  如果项目有数据库,则需要进行同步操作。在项目根目录下执行如下命令。

  # python manage.py makemigration

  # python manage.py migrate

  

  5. 命令行运行django项目

  uwsgi --http=ip:port --file=wsgifile_path  # 不配置静态文件也可运行,但是项目加载不到静态文件

  

  6. 收集静态文件

  # vim setting.py

  找到: STATIC_URL = '/static/'

  在下面添加: STATIC_ROOT = '/howm/damu/work/shopping/static_file/'  

  执行:python manage.py collectstatic

  

  最后: uwsgi --http=192.168.37.128:8000 --file=shopping/wsgi.py --static-map=/static=static_file

  # 命令 &  # 则命令在后台运行

  如果是阿里云服务器,此处的ip需要填写内网的ip地址。

  

  7. 配置所有需要的选项,通过配置文件启动uwsgi服务器

  在shopping项目根目录下创建wsgi.ini

  [uwsgi]
  http = 192.168.37.128:8000       #web服务IP端口,uWSGI做web服务器时用
  chdir = /home/damu/work/shopping/  # 项目根目录
  wsgi-file = shopping/wsgi.py     #指定wsgi模块
  rocesses = 4               # 启动的进程数
  threads = 2               # 每个进程的线程
  master = true              # 表示主进程模式进行
  pidfile = uwsgi.pid           # 主管理进程文件放置的位置
  daemonize = uwsgi.log         # 日志文件
  static-map = /static=static_file   # 静态文件 

  以配置文件方式启动服务

  # uwsgi --ini uwsgi.ini

  进程文件,用于服务重启、停止。如:

  重启指令:uwsgi --restart [pidfile路径]

  停止指令:uwsgi --stop [pidfile路径]

  或者:

  pkill -f uwsgi -9  

  killall -s INT /uws/bin/uwsgi

  killall -9 uwsgi  # 删除uwsgi进程,由于释放端口有延迟,要等几秒。

  

  8. 其他

  ps -ef | grep uwsgi   # 查看进程

  

  一共六个进程(1个主进程,4个创建进程,1个守护进程)。

  

  

  

												

CentOS下 Django部署 uWSGI+Django(一)的更多相关文章

  1. Django部署,Django+uWSGI+nginx+Centos部署

    说明:系统是在windows上开发的,使用django1.11.4+python3.6.3开发,需要部署在centos6.4服务器上. 第一步:在Centos6.4上安装Python3.6.2 安装请 ...

  2. Django 部署 uwsgi + nginx + supervisor

    Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...

  3. Centos下搭建 nginx+uwsgi+python

    python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...

  4. CentOS 下搭建部署独立SVN服务器全程详解(5.5)

    SVN服务器有2种运行方式: 1.独立服务器(例如:svn://xxx.com/xxx): 2.借助apache   (例如:http://svn.xxx.com/xxx): 为了不依赖apache, ...

  5. 了解django部署(Django + Uwsgi + Nginx)

    首先了解下基本概念: 1 WSGI WSGI:全称是Web Server Gateway Interface,是python应用程序或者框架和web服务器之间的一种接口,被广泛接受.WSGI不是服务器 ...

  6. ubuntu下配置nginx+uwsgi+django

    服务器配置是Ubuntu14.04 64位OS ubuntu14.04默认是安装好了python2.7版本不用自己安装了. 先更新下源 sudo apt-get update 第一步先安装pip su ...

  7. Django部署--uwsgi配置--nginx服务器配置

    uwsgi.ini文件 [uwsgi] #使用nginx连接时使用,Django程序所在服务器地址 socket=127.0.0.1:8000 #直接做web服务器使用,Django程序所在服务器地址 ...

  8. 在Centos下使用Siege对Django服务进行压力测试

    Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试.今天我们就使用Siege来对Django进行一次压力测试, ...

  9. centos下运行python3.6+Django+mysql项目

    文件准备: Django项目 myslq安装 关闭防火墙 用xshell拖拽到centos上 安装文件: 安装python3.6(3.7有问题) sh install_py36.sh 关闭防火墙 sh ...

随机推荐

  1. Java 反射编程(上)

    文章目录 反射的泛型就是用`? `来描述 反射与类的操作 (取得父类信息) 取得父类信息 1. 获得本类的包名称: 2. 取得父类的Class 对象 3. 取得父类接口 案例: 使用上述方法 反射与类 ...

  2. MySQL面试题汇总

    事务是什么? 一系列操作,要么全部完成,要么一个都不做 事务的ACID特性 原子性:一系列操作要么都执行,要么都不执行 一致性:事务执行前后数据完整性不变,如转账前后总金额不变 隔离性:多个事务并发访 ...

  3. spring boot使用@Async异步注解

    1.java的大部分接口的方法都是串行执行的,但是有些业务场景是不需要同步返回结果的,可以把结果直接返回,具体业务异步执行,也有些业务接口是需要并行获取数据,最后把数据聚合在统一返回给前端. 通常我们 ...

  4. 强烈推荐!15 个Github 顶级Java教程类开源项目

    大家好,我是 Guide 哥!今天给大家推荐 15 个新手也能看懂的 Java 教程方向的开源项目.这些项目无论是对于你学习 Java 还是准备 Java 方向的面试都非常有帮助. 正如我第一个要推荐 ...

  5. 【题解】Luogu P3123 [USACO15OPEN]贝茜说哞Bessie Goes Moo

    Luogu P3123 [USACO15OPEN]贝茜说哞Bessie Goes Moo 题目描述 Farmer John and Bessie the cow love to exchange ma ...

  6. Linux命令大全之挂载命令

    理解:Linux挂载相当于Windows分配盘符 1.查询系统中已挂载的设备 mount 2.设置自动挂载 编辑文件/etc/fstab,把文件写入就可以启动自动挂载了, 注:一般不把光盘写入,如果写 ...

  7. C#构造函数中:this()的作用

    通俗来说,可以说是构造函数的继承 (1) :this()用来继承无参时的构造函数,例如下面代码 static void Main(string[] args) { AA aA = new AA(&qu ...

  8. Netty 框架学习 —— 引导

    概述 前面我们学习了 ChannelPipeline.ChannelHandler 和 EventLoop 之后,接下来的问题是:如何将它们组织起来,成为一个可实际运行的应用程序呢?答案是使用引导(B ...

  9. 12、Linux磁盘设备基础知识(2)

    12.4.计算磁盘容量: 磁盘的大小=盘面大小*磁头数 盘面的大小=磁道大小*磁道数 磁道大小=512字节*扇区数 磁盘的大小=512字节*扇区数*磁道数*磁头数 磁盘的大小=柱面大小*柱面数 柱面大 ...

  10. layui 点击按钮 界面会刷新问题

    将button 改为input: <input class="layui-btn" type="button" style="border:so ...