Gunicorn Django部署配置方法

1. 简单部署

1. sudo pip3 install gunicorn
2. cd 到django项目中 sudo python3 manage.py migrate
3.启动服务:sudo python3 manage.py runserver 0.0.0.0:8000

4. 使用gunicorn 来运行项目
注:项目名untitled
[root@qqc_os7 untitled]# gunicorn untitled.wsgi -b 0.0.0.0:8000
[2019-08-04 09:31:17 +0800] [16614] [INFO] Starting gunicorn 19.9.0
[2019-08-04 09:31:17 +0800] [16614] [INFO] Listening at: http://0.0.0.0:8000 (16614)
[2019-08-04 09:31:17 +0800] [16614] [INFO] Using worker: sync
[2019-08-04 09:31:17 +0800] [16617] [INFO] Booting worker with pid: 16617

5. 查看进程
[root@qqc_os7 untitled]# ps aux | grep 8000
root  15383 0.2 1.9 213440 19028 pts/3 S+ 19:27 0:00 /usr/local/python3/bin/python3.6 /usr/local/python3/bin/gunicorn untitled.wsgi -b 0.0.0.0:8000
root  15386 0.2 3.3 256572 33676 pts/3 S+ 19:27 0:00 /usr/local/python3/bin/python3.6 /usr/local/python3/bin/gunicorn untitled.wsgi -b 0.0.0.0:8000
root  15389 0.0 0.0 112676 992 pts/2 S+ 19:30 0:00 grep --color=auto 8000

6.杀死进程
[root@qqc_os7 untitled]# ps aux | grep 8000 | grep -v grep | awk '{print $2}' | xargs kill

查看开放的端口:firewall-cmd --list-ports
开启端口:firewall-cmd --zone=public --add-port=80/tcp --permanent (外网访问时开放端口)
查看网络:ping 10.0.0.130

访问:http://10.0.0.130:8000/index/
![](https://img2018.cnblogs.com/blog/1357260/201908/1357260-20190804092940438-114633478.png)

2. 添加环境变量

gunicorn目标位置:/usr/local/python3/lib/python3.6/site-packages (19.9.0)
[root@qqc_os7 /]# vim /etc/profile

末尾追加要加入环境变量的应用:
export PATH=/opt/mysql/bin:$PATH
export PATH=/opt/redis-3.2.10/src:$PATH:/usr/local/python3/bin
export RABBIT_HOME=/data/soft/rabbitmq_server-3.7.13
export PATH=$RABBIT_HOME/bin:$PATH 

3. gunicorn常用配置

Gunicorn“绿色独角兽”是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器
-c 指定一个配置文件(py文件)
-b 与指定的socket进行绑定
-D 以守护进程形式来运行Gunicorn进程,其实就是将这个服务放到后台去运行
-w 工作的进程数量 ;[root@qqc_os7 untitled]# gunicorn -w 2 untitled.wsgi -b 0.0.0.0:8000
-k 工作进程类型,sync(默认), eventlet, gevent, or tornado, gthread, gaiohttp.

参考:https://www.jb51.net/article/166871.htm
http://docs.gunicorn.org/en/latest/settings.html

配置文件(py文件,与django中的manage.py在同一目录)

# gunicorn_config.py
import logging
import logging.handlers
from logging.handlers import WatchedFileHandler
import os
import multiprocessing
bind = '10.0.0.130:8000'  #绑定ip和端口号
backlog = 512    #监听队列
chdir = '/home/test/server/bin' #gunicorn要切换到的目的工作目录
timeout = 30  #超时
worker_class = 'gevent' #使用gevent模式,还可以使用sync 模式,默认的是sync模式

workers = multiprocessing.cpu_count() * 2 + 1 #进程数
threads = 2 #指定每个进程开启的线程数
loglevel = 'info' #日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
accesslog = "/home/test/server/log/gunicorn_access.log"  #访问日志文件
errorlog = "/home/test/server/log/gunicorn_error.log"  #错误日志文件
通过配置文件启动django服务:
[root@qqc_os7 untitled]# gunicorn untitled.wsgi -c gunicorn_config.py

django项目目录结构

[root@qqc_os7 untitled]# tree
.
├── app01
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ │ └── __pycache__
│ │  └── __init__.cpython-36.pyc
│ ├── models.py
│ ├── __pycache__
│ │ ├── admin.cpython-36.pyc
│ │ ├── apps.cpython-36.pyc
│ │ ├── __init__.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── tests.py
│ └── views.py
├── app02
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ │ └── __pycache__
│ │  └── __init__.cpython-36.pyc
│ ├── models.py
│ ├── __pycache__
│ │ ├── admin.cpython-36.pyc
│ │ ├── __init__.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── templates
│ │ └── new_app
│ │  └── index.html
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── gunicorn_config.py
├── manage.py
├── static
├── templates
│ └── index.html
└── untitled
 ├── __init__.py
 ├── __pycache__
 │ ├── __init__.cpython-36.pyc
 │ ├── settings.cpython-36.pyc
 │ ├── urls.cpython-36.pyc
 │ └── wsgi.cpython-36.pyc
 ├── settings.py
 ├── urls.py
 └── wsgi.py

日志文件

[root@qqc_os7 log]# cat gunicorn_access.log
[04/Aug/2019:01:15:14 +0000] <16598> 10.0.0.1 "GET /index/ HTTP/1.1" 200 0.050109 170 -" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
[04/Aug/2019:01:15:24 +0000] <16597> 10.0.0.1 "GET /index/ HTTP/1.1" 200 0.045950 170 -" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36

总结

以上所述是小编给大家介绍的Gunicorn Django部署配置方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • 使用FastCGI部署Python的Django应用的教程

    作为一个mod_python模块的替代,你可以考虑使用mod_wsgi模块,此模块开发的时间比mod_python的开发时间离现在更近一些,在Django社区已有一些使用. 一个完整的概述超出了本书的范围,你可以从官方的Django文档查看到更多的信息. 使用FastCGI部署Django应用 尽管将使用Apache和mod_python搭建Django环境是最具鲁棒性的,但在很多虚拟主机平台上,往往只能使用FastCGI 此外,在很多情况下,FastCGI能够提供比mod_python更为优越

  • 在Linux系统上部署Apache+Python+Django+MySQL环境

    Linux+apache+mysql+python+mod_python+Django 说明:系统rhel 5.3,默认安装httpd.mysql,没有安装的,请下载安装RPM包,删除/etc/httpd/modules/mod_python.so,如果有的话. 一.安装python wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz  tar xfz mod_python-2.7.11.tgz cd python-2.7.1

  • Docker部署Django应用的示例

    之前部署Web应用,没用docker,直接在服务器上部署,使用了fabric+nginx+supervisor+gunicorn部署,可查看我写过的一片博客:部署Web应用.但后来了解了docker,为其"Build,Ship and Run Any App,Anywhere"的思想所折服,觉得这个太牛逼了,所以我也尝试一下自己用docker部署Web应用.本篇文章为了记录我用docker部署web应用的过程和心得. 一.网络架构 我用Visio大概画了一下我的网络架构图: 我构建的容

  • 使用PyCharm配合部署Python的Django框架的配置纪实

    安装软件 安装 Python 2.7.PyCharm.pip(Python包管理工具).Django ( pip install Django) 部署 PyCharm 新建Django工程 完成后,其目录如下: 子目录MyDjangoProject下表示工程的全局配置,分别为setttings.py.urls.py和wsgi.py,其中setttings.py包括了系统的数据库配置.应用配置和其他配置,urls.py则 表示web工程Url映射的配置. 子目录student则是在该工程下创建的a

  • Apache如何部署django项目

    在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的web服务器上. 安装apache Apache是非常有名的web服务器软件,如果想让我们web项目运行几乎离不开它. Apache官方网站:http://httpd.apache.org/ 根据自己的环境,选择相应的版本进行下载.apache 官网没有windows 64位版本,可以通过下面的链接进

  • 详解将Django部署到Centos7全攻略

    Django部署到Cenos7需要安装大量的依赖包, 有很多坑需要踩, 这里是踩坑后探索出的标准化步骤 实验环境: 腾讯云centos7 用centos7.5镜像创建容器(这步操作按自己需求来, 不使用docker的可以跳过这步) docker run -t -i --name fangyuanxiaozhan-com -p 9000:9000 centos:7.5.1804 /bin/bash 创建名为fangyuanxiaozhan-com的容器 将容器的9000端口映射到物理机的9000端

  • 将Django项目部署到CentOs服务器中

    首先,把项目上传到虚拟机中. scp -r C:\Users\Administrator\Desktop\fresh root@192.168.218.128:/home/fresh/ 在虚拟环境中运行,确保uwsgi安装好. pip install uwsgi 验证: 浏览器正常访问ip+端口,能正常访问,说明安装好了. settings文件的修改: 将HOST改为本机地址. python manage.py collectstatic 收集admin静态文件 修改uwsgi.ini 在项目文

  • Windows下Python的Django框架环境部署及应用编写入门

    环境搭建 1.下载所需的软件包: (1)python安装包 (2)django安装包 以下2个包其实是安装python包管理工具,在后面安装django文档包模块时会用到,下载网站是pypi (1)setuptools.exe  (2)pip 2.安装所需的软件包: python安装包是exe,setuptools也是exe,所以直接双击安装即可,先安装 django.pip是python模块包:安装时先解压,而后进入目录后使用命令:python setup.py install 安装即可 3.

  • Gunicorn Django部署配置方法

    1. 简单部署 1. sudo pip3 install gunicorn 2. cd 到django项目中 sudo python3 manage.py migrate 3.启动服务:sudo python3 manage.py runserver 0.0.0.0:8000 4. 使用gunicorn 来运行项目 注:项目名untitled [root@qqc_os7 untitled]# gunicorn untitled.wsgi -b 0.0.0.0:8000 [2019-08-04 0

  • Apache,wsgi,django 程序部署配置方法详解

    本文实例讲述了Apache,wsgi,django 程序部署配置方法.分享给大家供大家参考,具体如下: 前面写过一篇文章,ngixn,uwsgi,django,python 环境配置,有兴趣的朋友可以参考 nginx,django部署 后来有人在QQ上问我,用Apache 好部署吗?我当时只在windows下用 APACHE2.3,django1.4,wsgi 部署过,还没有在 linux 下部署.前几天有时间,我在 centos 上测试部署了一下.也不难.唯一的差别是,在windows 下有已

  • Gunicorn运行与配置方法

    Gunicorn"绿色独角兽"是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点. 安装gunicorn: $ sudo apt-get update $ sudo apt-get install gunicorn 运行gunicorn: $ gunicorn [OPTIONS] 模块名:变量名 模块名是python文件名

  • SpringBoot热部署配置方法详解

    目录 前言 手动启动热部署 热部署种类 手动进行热部署 自动启动热部署 热部署范围配置 热部署的关闭 总结 前言 我们在了解一个东西的时候,总是喜欢问的就是为什么要?就是为什么我们需要这个,至少你要告诉我用这个的好处是什么:知道了需求然后学习,效率会好一些. 所以,我们为什么要学习热部署?想象一下这个情况,我们在开发的过程中,每次修改都要重启服务器才能够去重新部署项目,在项目较小的情况下还能忍受,但是如果做的是一个大型项目,部署一次消耗的时间成本很高. 所以热部署的作用 就是为我们免去这些时间上

  • Spring Boot 应用的热部署配置方法

    目录 Spring Boot 项目之热部署配置 前言 IDEA 配置 Spring Boot 项目配置 测试 后话 Spring Boot 项目之热部署配置 前言 所谓热部署,简单来说,就是代码修改后不需重启项目就可自动加载出新的内容. 注意:热部署在 debug 调试模式下才生效! IDEA 配置 1.在 IDE(IDEA)中开启相关项目自动构建选项 2.开启编译器设置中修改后自动编译的选项(下图是 IDEA 2021版本,其他版本可能在其他位置) Spring Boot 项目配置 其实就是在

  • Django上线部署之IIS的配置方法

    环境: 1 .Windows Server 2016 Datacenter 64位 2 .SQL Server 2016 Enterprise 64位 3 .Python 3.6.0 64位 4.administrator用户,无域环境,最高权限 要求: 按照顺序部署 1 .安装数据库 2 .安装数据库客户端[SSMS] 3 .安装Python 4 .安装IIS 5.安装CGI 6.将源码拷贝至[C:\inetpub\wwwroot\MySite] ( MySite是自定义文件夹,wwwroot

  • 浅谈Django+Gunicorn+Nginx部署之路

    前言 最近,我已经成功将我的个人网站从 Flask 迁移到 Django 了,最早接触 Django 的时候大概是在 4 年前,我记得那个时候 Django 中的路由配置使用 正则 来进行的,但是我有特别烦这个东西,所以就果断弃坑了.然后今年年初的时候,我用 Flask 写了一个我的个人网站,刚开始的时候功能还是比较简单,看着路由配置和部署规则都很方便,就果断采用了.但是后来我想添加的功能越来越多的时候,我发现我已经越来越难掌控它了,正好最近我稍微看了一下 Django 这几年的变化,最新的 2

  • SpringBoot配置devtools实现热部署的方法

    spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtools的原理 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个r

  • Linux下安装Python3和django并配置mysql作为django默认服务器方法

    我的操作系统为centos6.5 1  首先选择django要使用什么数据库.django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包. yum install mysql mysql-devel #为了测试方便,我们需要安装sqlite-devel包 yum install sqlite-devel 2  接下来需要安装Python了,因为Python3已经成为主流,所以接下来我们要安装Python3,到官网去下载Python3

  • python+Django+apache的配置方法详解

    本文实例讲述了python+Django+apache的配置方法.分享给大家供大家参考,具体如下: 下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-Apache2.2.exe 下载python-2.5.4.msi 下载Django 下载MySQL-python-1.2.2.win32-py2.5.exe 1.先安装Python-2.5.4.msi 2.安装 Django-1.1.1-final.tar.gz 解压开,然后解压到某个目录如:(D:/Dev) 在

随机推荐