在django框架中,我们一般直接通过python manage.py runserver来启动提供服务,但是如果生产环境此方法不可行,而且容易导致异常退出,于是需要借助uwsgi来作为守护进程。

操作思路:

  • 服务器中安装uwsgi插件
  • 新建uwsgi.ini文件,写入uwsgi需要的参数
  • 安装nginx,并配置uwsgi_pass 127.0.0.1:9496代理转发
  • 启动nginx、uwsgi

安装uwsgi插件

pip install uwsgi

新建uwsgi.ini文件,写入uwsgi需要的参数

可直接在代码根目录中创建uwsgi.ini文件,参考如下:

[uwsgi]
socket = 127.0.0.1:9496
chdir = /home/dengzhixu/crawl_data
wsgi-file = /home/dengzhixu/crawl_data/yibo_crawl_data/wsgi.py
processes = 4
threads = 2
#stats = 0.0.0.0:9496
buffer-size = 65536
#daemonize = /var/log/uwsgi.log

安装nginx,配置uwsgi_pass转发

安装nginx步骤省略,可直接去lnmp.org下载集成nginx

nginx添加vhost配置文件,参考如下

server
{
listen 9495;
#listen [::]:;
server_name crawl.com ;
index index.html index.htm default.html default.htm;
root /home/dengzhixu/crawl_data;
include rewrite/other.conf; location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9496;
uwsgi_param UWSGI_SCRIPT ./yibo_crawl_data/demosite.wsgi;
uwsgi_param UWSGI_CHDIR /home/dengzhixu/crawl_data;
index index.html index.htm;
client_max_body_size 35m;
} location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/crawl.com.log;

启动nginx、uwsgi

nginx
uwsgi -d --ini /home/dengzhixu/crawl_data/uwsgi.ini

配置systemd自启动

创建一个systemd服务文件/lib/systemd/system/uwsgi.service

[Unit]
Description=uWSGI Emperor
#After=syslog.target
After=network.target [Service]
#PIDFile=/run/uwsgi.pid
ExecStart=/usr/local/bin/uwsgi --ini /home/dengzhixu/crawl_data/uwsgi.ini
#ExecStop=/usr/local/bin/uwsgi --stop $MAINPID
#ExecReload=/usr/local/bin/uwsgi -d --reload $MAINPID
# Requires systemd version 211 or newer
#RuntimeDirectory=uwsgi
Restart=always
KillSignal=SIGQUIT
Type=notify
#Type=forking
StandardError=syslog
NotifyAccess=all [Install]
WantedBy=multi-user.target

开启自启动,并启动

systemctl start uwsgi.service
systemctl enable uwsgi.service

参考文献:

https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html

centos7使用nginx+uwsgi部署python django项目的更多相关文章

  1. 使用Nginx+Uwsgi部署Python Flask项目

    第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...

  2. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  3. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  4. nginx+uwsgi部署python web(web.py)

    1.nginx: nginx 是一个 http 服务器,与 apache.lighttpd.Microsoft IIS 等属于同类产品. 2.uWSGI: uWSGI 是一个快速的.纯C语言开发的.自 ...

  5. CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...

  6. Nginx + uWSGI 部署Django 项目,并实现负载均衡

    一.uWSGI服务器 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI ...

  7. ubuntu+nginx+uwsgi部署django web项目

    前言 将本地开发的django项目部署至linux上的uwsgi服务器,并配置nginx,完成基于ubuntu+nginx+uwsgi的上线运行.下面整理相关步骤. 服务器配置virtualenv 如 ...

  8. nginx + uwsgi 部署 Django+Vue项目

    nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...

  9. 填坑!!!virtualenv 中 nginx + uwsgi 部署 django

    一.为什么会有这篇文章 第一次接触 uwsgi 和 nginx ,这个环境搭建,踩了太多坑,现在记录下来,让后来者少走弯路. 本来在 Ubuntu14.04 上 搭建好了环境,然后到 centos7. ...

  10. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

    Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...

随机推荐

  1. JavaScript String对象及方法总结

    String 对象创建方法: new String() var txt1 = new String("string"); var txt2 = "string" ...

  2. 将MultipartFile对象转换成File对象

    将MultipartFile对象转换成File对象 // 将MultipartFile对象转换成File对象 private File convertToFile(MultipartFile mult ...

  3. DES加密算法优缺点大揭秘:为何它逐渐被取代?

    一.引言 DES(Data Encryption Standard)加密算法作为一种历史悠久的对称加密算法,自1972年由美国国家标准局(NBS)发布以来,广泛应用于各种数据安全场景.本文将从算法原理 ...

  4. STM32CubeMX教程5 TIM 定时器概述及基本定时器

    1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 逻 ...

  5. NoClassDefFoundError: javax/el/ELManager

    Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager at org.hibernate.validator.messageinte ...

  6. HDU 3660 树形DP

    原题地址 题意 Alice与Bob在一棵树的树根一同出游,两人从Bob开始轮换选择道路一直走到树叶,Alice会尽可能使走过的总长最小,而Bob相反.不过他们都不能让总长落到[l, r]之外 现在给出 ...

  7. Java 设置Excel页面背景

    本文介绍通过Java 程序在Excel表格中设置页面背景的方法,可设置颜色背景(即指定单一颜色作为背景色).图片背景(即加载图片设置成页面背景).程序中需要使用免费版Excel类库工具 Free Sp ...

  8. 【华为云技术分享】LwM2M协议的学习与分享

    [摘要] 本文主要对于LwM2M协议进行了简单的介绍,包括协议的体系架构以及特性.对象.资源.接口的定义等,希望对你有所帮助. 1协议简介 LwM2M(Lightweight Machine-To-M ...

  9. 中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装

    摘要:一键"Run in ModelArts",无需考虑计算资源.环境的搭建,简单运行代码,即可拥有你的超级大月亮,打造专属于你的梦幻中秋月夜. 本文分享自华为云社区<中秋节 ...

  10. 云图说|一张图看懂一站式DevOps利器——华为云DevCloud

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 华为云DevCl ...