Gunicorn Django部署配置方法
1.简单部署
1.sudopip3installgunicorn 2.cd到django项目中sudopython3manage.pymigrate 3.启动服务:sudopython3manage.pyrunserver0.0.0.0:8000 4.使用gunicorn来运行项目 注:项目名untitled [root@qqc_os7untitled]#gunicornuntitled.wsgi-b0.0.0.0:8000 [2019-08-0409:31:17+0800][16614][INFO]Startinggunicorn19.9.0 [2019-08-0409:31:17+0800][16614][INFO]Listeningat:http://0.0.0.0:8000(16614) [2019-08-0409:31:17+0800][16614][INFO]Usingworker:sync [2019-08-0409:31:17+0800][16617][INFO]Bootingworkerwithpid:16617 5.查看进程 [root@qqc_os7untitled]#psaux|grep8000 root153830.21.921344019028pts/3S+19:270:00/usr/local/python3/bin/python3.6/usr/local/python3/bin/gunicornuntitled.wsgi-b0.0.0.0:8000 root153860.23.325657233676pts/3S+19:270:00/usr/local/python3/bin/python3.6/usr/local/python3/bin/gunicornuntitled.wsgi-b0.0.0.0:8000 root153890.00.0112676992pts/2S+19:300:00grep--color=auto8000 6.杀死进程 [root@qqc_os7untitled]#psaux|grep8000|grep-vgrep|awk'{print$2}'|xargskill 查看开放的端口:firewall-cmd--list-ports 开启端口:firewall-cmd--zone=public--add-port=80/tcp--permanent(外网访问时开放端口) 查看网络:ping10.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 末尾追加要加入环境变量的应用: exportPATH=/opt/mysql/bin:$PATH exportPATH=/opt/redis-3.2.10/src:$PATH:/usr/local/python3/bin exportRABBIT_HOME=/data/soft/rabbitmq_server-3.7.13 exportPATH=$RABBIT_HOME/bin:$PATH
3.gunicorn常用配置
Gunicorn“绿色独角兽”是一个被广泛使用的高性能的PythonWSGIUNIXHTTP服务器 -c指定一个配置文件(py文件) -b与指定的socket进行绑定 -D以守护进程形式来运行Gunicorn进程,其实就是将这个服务放到后台去运行 -w工作的进程数量;[root@qqc_os7untitled]#gunicorn-w2untitled.wsgi-b0.0.0.0:8000 -k工作进程类型,sync(默认),eventlet,gevent,ortornado,gthread,gaiohttp. 参考:https://www.nhooo.com/article/166871.htm http://docs.gunicorn.org/en/latest/settings.html
配置文件(py文件,与django中的manage.py在同一目录)
#gunicorn_config.py importlogging importlogging.handlers fromlogging.handlersimportWatchedFileHandler importos importmultiprocessing 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_os7untitled]#gunicornuntitled.wsgi-cgunicorn_config.py
django项目目录结构
[root@qqc_os7untitled]#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_os7log]#catgunicorn_access.log [04/Aug/2019:01:15:14+0000]<16598>10.0.0.1"GET/index/HTTP/1.1"2000.050109170-""Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/73.0.3683.86Safari/537.36" [04/Aug/2019:01:15:24+0000]<16597>10.0.0.1"GET/index/HTTP/1.1"2000.045950170-""Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/73.0.3683.86Safari/537.36
总结
以上所述是小编给大家介绍的GunicornDjango部署配置方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!