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/

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.jianshu.com/p/260f18aa5462
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部署的更多相关文章
- Gunicorn + Django 部署
1. 下载gunicorn pip install gunicorn 2. 运行 gunicorn AutoSa.wsgi:application ## AutoSa为我project的名字,后面的不 ...
- django 部署,gunicorn、virtualenv、nginx
声明: 1.本篇文章是我边写命令边写的,请尊重我的劳动成果,转载请加上链接. 2.我既然公开写出来,是希望大家遇到问题的时候有个参考,所以,大家可以免费转载,使用该文章 3.但是,如果你要用这篇文章来 ...
- Django + Gunicorn + Nginx 部署 Ubuntu 服务器
Django + Gunicorn + Nginx 部署服务器 获取腾讯云 root权限 本人的服务器使用的是腾讯云,腾讯云默认是没有开放 root 用户的,我们来创建 root 用户. 创建 roo ...
- django部署
部署教程 阿里云django部署教程 注意备份Apache2的siteconf文件 细节 环境迁移 如果是修改了注意些requirement文件
- Django 部署 uwsgi + nginx + supervisor
Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...
- django 部署到 apache
安装完django之后,每次都需要通过命令来启动启动开发服务器.虽然调试和测试方便,但只能在本地运行,并且不能承受许多用户同时使用的负载.所以需要将Django部署到生产级的服务器,这里选择apach ...
- Django部署到Apache Web Server
Windows环境下,将Django部署到Apache Web Server 在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. ...
- flask +gevent+nginx+Gunicorn+supervisor部署flask应用
上篇 可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...
- python基础-requests模块、异常处理、Django部署、内置函数、网络编程
网络编程 urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应. 校验返回值,进行接口测试: 编码:把一个Python对象编码转 ...
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
随机推荐
- isinstance()函数判断数据类型
判断是否是字符串 a = b = " print(isinstance(a,str)) print(isinstance(b,str)) False True 判断是否是列表 a = [,, ...
- python的简介与简单使用
简介: python的诞生 创始人:Guido van Rossum(荷兰人:吉多) 时间:1989年 特点: 1.简单明了,容易上手 2.多平台,`全面发展,平衡发展, 3.胶水语言,有大量的库 其 ...
- C语言实现—学生成绩管理系统(Linux下运行)
开发环境:Linux 开发语言:C 相关文件下载: 码云:https://gitee.com/ikaros-521/c_project/tree/master/%E5%AD%A6%E7%94%9F%E ...
- 阿里云域名的ssl证书申请与腾讯服务器域名的证书安装
阿里云域名中的SSL证书申请,腾讯云服务器中的证书安装: 因为公司的与域名都在阿里云上面,服务器却用的是腾讯云的.记得前2年用阿里云管理平台的时候,域名的SSL证书都很好找,也许是长时间不用,找SSL ...
- win10win7office系列激活工具 KMSAuto Net 2016 v1.5.4 绿色便携版
下载地址:点我 KMSpico又称KMS激活工具,KMSpico是目前成功且经常更新的Windows激活工具,可以激活任何版本的window系统和任何版本的Office软件,即使是win8和offic ...
- NOSQL—MongoDB之外的新选择
MongoDB之外的新选择 MongoDB拥有灵活的文档型数据结构和方便的操作语法,在新兴的互联网应用中得到了广泛的部署,但对于其底层的存储引擎一直未对外开放,虽说开源却有失完整.Mongo版本3中开 ...
- 前后端分离之Swagger2
1. 问题描述 随着软件过程的不断发展,前后端分离开发模式被越来越的开发团队使用,今天介绍下前后分离中必用的接口设计与调试工具-swagger2,前端人员根据swagger的描述,进行参数的传递:前后 ...
- CTSC&APIO被教做人记
DAY 0: 早早起来从衡水出发,在去火车站的路上明白了HZOI总是差点误车的真相……上了绿皮火车之后由于没网没流量就开始看政治书应付学考,然而并不是很能看进去,感觉初中学的比高中学的不知道高到哪里去 ...
- 判断小端大端(C实现)
C程序中的大端小端概念可以参见上一篇文章 如何区分小端和大端.本文重点讨论如何用C程序来判断当前系统是大端还是小端. 判断大端小端的程序如下: #include <stdio.h> int ...
- blast2go本地化 mysql_study
mysql yum -y install mysql mysqladmin -uroot -passwd "oebiotech" mysql -uroot -poebiotech ...