1. 1. sudo pip3 install gunicorn
  2. 2. cd django项目中 sudo python3 manage.py migrate
  3. 3.启动服务:sudo python3 manage.py runserver 0.0.0.0:8000
  4. 4. 使用gunicorn 来运行项目
  5. 注:项目名untitled
  6. [root@qqc_os7 untitled]# gunicorn untitled.wsgi -b 0.0.0.0:8000
  7. 5. 查看进程
  8. [root@qqc_os7 untitled]# ps aux | grep 8000
  9. 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
  10. 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
  11. root 15389 0.0 0.0 112676 992 pts/2 S+ 19:30 0:00 grep --color=auto 8000
  12. 6.杀死进程
  13. [root@qqc_os7 untitled]# ps aux | grep 8000 | grep -v grep | awk '{print $2}' | xargs kill
  14. 查看开放的端口:firewall-cmd --list-ports
  15. 开启端口:firewall-cmd --zone=public --add-port=80/tcp --permanent (外网访问时开放端口)
  16. 查看网络:ping 10.0.0.130
  17. 访问:http://10.0.0.130:8000/index/
  1. gunicorn目标位置:/usr/local/python3/lib/python3.6/site-packages (19.9.0)
  2. [root@qqc_os7 /]# vim /etc/profile
  3. 末尾追加要加入环境变量的应用:
  4. export PATH=/opt/mysql/bin:$PATH
  5. export PATH=/opt/redis-3.2.10/src:$PATH:/usr/local/python3/bin
  6. export RABBIT_HOME=/data/soft/rabbitmq_server-3.7.13
  7. export PATH=$RABBIT_HOME/bin:$PATH
  • Gunicorn“绿色独角兽”是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器
  1. -c 指定一个配置文件(py文件)
  2. -b 与指定的socket进行绑定
  3. -D 以守护进程形式来运行Gunicorn进程,其实就是将这个服务放到后台去运行
  4. -w 工作的进程数量 ;[root@qqc_os7 untitled]# gunicorn -w 2 untitled.wsgi -b 0.0.0.0:8000
  5. -k 工作进程类型,sync(默认), eventlet, gevent, or tornado, gthread, gaiohttp.
  6. 参考:https://www.jianshu.com/p/260f18aa5462
  7. http://docs.gunicorn.org/en/latest/settings.html
  • 配置文件(py文件,与django中的manage.py在同一目录)
  1. # gunicorn_config.py
  2. import logging
  3. import logging.handlers
  4. from logging.handlers import WatchedFileHandler
  5. import os
  6. import multiprocessing
  7. bind = '10.0.0.130:8000' #绑定ip和端口号
  8. backlog = 512 #监听队列
  9. chdir = '/home/test/server/bin' #gunicorn要切换到的目的工作目录
  10. timeout = 30 #超时
  11. worker_class = 'gevent' #使用gevent模式,还可以使用sync 模式,默认的是sync模式
  12. workers = multiprocessing.cpu_count() * 2 + 1 #进程数
  13. threads = 2 #指定每个进程开启的线程数
  14. loglevel = 'info' #日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
  15. access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
  16. accesslog = "/home/test/server/log/gunicorn_access.log" #访问日志文件
  17. errorlog = "/home/test/server/log/gunicorn_error.log" #错误日志文件
  • 通过配置文件启动django服务:
  1. [root@qqc_os7 untitled]# gunicorn untitled.wsgi -c gunicorn_config.py
  • django项目目录结构
  1. [root@qqc_os7 untitled]# tree
  2. .
  3. ├── app01
  4.    ├── admin.py
  5.    ├── apps.py
  6.    ├── __init__.py
  7.    ├── migrations
  8.       ├── __init__.py
  9.       └── __pycache__
  10.       └── __init__.cpython-36.pyc
  11.    ├── models.py
  12.    ├── __pycache__
  13.       ├── admin.cpython-36.pyc
  14.       ├── apps.cpython-36.pyc
  15.       ├── __init__.cpython-36.pyc
  16.       ├── models.cpython-36.pyc
  17.       └── views.cpython-36.pyc
  18.    ├── tests.py
  19.    └── views.py
  20. ├── app02
  21.    ├── admin.py
  22.    ├── apps.py
  23.    ├── __init__.py
  24.    ├── migrations
  25.       ├── __init__.py
  26.       └── __pycache__
  27.       └── __init__.cpython-36.pyc
  28.    ├── models.py
  29.    ├── __pycache__
  30.       ├── admin.cpython-36.pyc
  31.       ├── __init__.cpython-36.pyc
  32.       ├── models.cpython-36.pyc
  33.       └── views.cpython-36.pyc
  34.    ├── templates
  35.       └── new_app
  36.       └── index.html
  37.    ├── tests.py
  38.    └── views.py
  39. ├── db.sqlite3
  40. ├── gunicorn_config.py
  41. ├── manage.py
  42. ├── static
  43. ├── templates
  44.    └── index.html
  45. └── untitled
  46. ├── __init__.py
  47. ├── __pycache__
  48.    ├── __init__.cpython-36.pyc
  49.    ├── settings.cpython-36.pyc
  50.    ├── urls.cpython-36.pyc
  51.    └── wsgi.cpython-36.pyc
  52. ├── settings.py
  53. ├── urls.py
  54. └── wsgi.py
  • 日志文件
  1. [root@qqc_os7 log]# cat gunicorn_access.log
  2. [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"
  3. [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

版权声明:本文为quqinchao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/quqinchao/p/11297224.html