Centos部署django服务nginx+uwsgi的方法


Posted in Python onJanuary 02, 2019

1.安装python3

yum -y install wget gcc make zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel openssl-devel
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
xz -d Python-3.6.1.tar.xz
tar -xvf Python-3.6.1.tar
cd Python-3.6.1
./configure --prefix=/usr/local/python3.6 --enable-optimizations
make
make install
ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3
 ln -s /usr/local/python3.6/bin/pip3 /usr/bin/pip3

这是通过编译的方式来安装的

输入 python3 ?version 和 pip3 ?version 进行测试

2. 安装nginx

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum install -y nginx
sudo systemctl start nginx.service

通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页​面进行测试

3.下载代码,上传到服务器的/var/www 目录

4. 安装依赖

pip3 install django
pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

5. 独立运行进行测试

cd /var/www/dexundjango
python3 manage.py runserver 0.0.0.0:8014

测试通过后,Ctrl + C 停止运行

6.uwsgi

sudo mkdir -p /etc/uwsgi/sites
sudo mkdir -p /var/log/uwsgi
cd /etc/uwsgi/sites
sudo vi /etc/uwsgi/sites/mysite.ini
[uwsgi]
socket = 127.0.0.1:10000
chdir=/var/www/dexundjango
module=mysite.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/mysite.log

7. nginx 配置

vi /usr/local/nginx/conf/nginx.conf (根据本地的配置路径)
find / -name uwsgi_params 来替换下面的uwsgi_params路径
server {
  listen 8014; #暴露给外部访问的端口
  server_name localhost;
    charset utf-8;
  location / {
    include /usr/local/nginx/conf/uwsgi_params;
    uwsgi_pass 127.0.0.1:10000; # 必须和uwsgi.ini配置的端口一致
  }
  location /static/ {
    alias /home/www/dexundjango/trade/static/; #项目静态路径设置
  }

8. 启动uwsgi

uwsgi3 --ini /etc/uwsgi/sites/mysite.ini

9. 开机启动uwsgi

vi /etc/init.d/uwsgi
#!/bin/bash
# chkconfig: - 85 15
uwsgi=/usr/bin/uwsgi3
api_conf=/etc/uwsgi/sites/mysite.ini

case $1 in
  start)
    echo -n "Starting uWsgi"
    nohup $uwsgi -i $api_conf >/var/log/uwsgi/project-api.log 2>&1 &
    echo " done"
  ;;

  stop)
    echo -n "Stopping uWsgi"
    killall -9 uwsgi
    echo " done"
  ;;

  restart)
    $0 stop
    $0 start
  ;;

  show)
    ps -ef|grep uwsgi
  ;;

  *)
    echo -n "Usage: $0 {start|restart|stop|show}"
  ;;

esac
chmod +x /etc/init.d/uwsgi
chkconfig --add uwsgi
chkconfig uwsgi on

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python装饰器使用实例:验证参数合法性
Jun 24 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
Django实现学员管理系统
Feb 26 Python
我们为什么要减少Python中循环的使用
Jul 10 Python
keras和tensorflow使用fit_generator 批次训练操作
Jul 03 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
Python识别验证码的实现示例
Sep 30 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 Python
全网非常详细的pytest配置文件
Jul 15 Python
Python 一句话生成字母表的方法
Jan 02 #Python
使用python将请求的requests headers参数格式化方法
Jan 02 #Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 #Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 #Python
Python装饰器语法糖
Jan 02 #Python
Python WEB应用部署的实现方法
Jan 02 #Python
Python功能点实现:函数级/代码块级计时器
Jan 02 #Python
You might like
劣质的PHP代码简化
2010/02/08 PHP
php操作mongoDB实例分析
2014/12/29 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[01:13]这,就是刀塔
2014/07/16 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
致400米运动员广播稿
2014/02/07 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
赞助商致辞
2015/07/30 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
python双向链表实例详解
2022/05/25 Python
Nginx跨域问题解析与解决
2022/08/05 Servers