怎么在Gunicorn中配置Django
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,怎么在Gunicorn中配置Django?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 简单部署1. sudo pi
千家信息网最后更新 2024年11月27日怎么在Gunicorn中配置Django
怎么在Gunicorn中配置Django?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1. 简单部署
1. sudo pip3 install gunicorn2. cd 到django项目中 sudo python3 manage.py migrate3.启动服务:sudo python3 manage.py runserver 0.0.0.0:80004. 使用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: 166175. 查看进程[root@qqc_os7 untitled]# ps aux | grep 8000root 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:8000root 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:8000root 15389 0.0 0.0 112676 992 pts/2 S+ 19:30 0:00 grep --color=auto 80006.杀死进程[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:$PATHexport PATH=/opt/redis-3.2.10/src:$PATH:/usr/local/python3/binexport RABBIT_HOME=/data/soft/rabbitmq_server-3.7.13export 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.htmhttp://docs.gunicorn.org/en/latest/settings.html
配置文件(py文件,与django中的manage.py在同一目录)
# gunicorn_config.pyimport loggingimport logging.handlersfrom logging.handlers import WatchedFileHandlerimport osimport multiprocessingbind = '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
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
文件
进程
日志
配置
级别
项目
服务
模式
目录
端口
工作
运行
变量
环境
错误
帮助
开放
清楚
位置
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿里云怎么连接服务器
带数据库的his系统
软件开发项目合同公示
网络安全linux加固
打零工互联网科技加盟
软件开发英语几级
VBA小软件的网络安全
美国网络安全估值
提高网络安全防御能力
互联网的科技知识
华为单板开软件开发
数据库查询表的大小
德州亚商互联网络科技
深圳支付软件开发联系人
用友u8数据库如何取消两清
python与数据库的区别
广电网络安全复查报告
介绍网络技术英文
软件开发质量提升措施
庆阳网络安全态势感知装置
关于网络安全的问答题
sql2000数据库收缩
林业信息网络安全宣传周
solr 索引数据库
苏州软件开发评价工资
软件开发0基础教程
网络技术包括哪些方面
电磁感应课件软件开发
网络技术的七大要点
比亚迪嵌入式软件开发工程师