怎么在Gunicorn中配置Django
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,怎么在Gunicorn中配置Django?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 简单部署1. sudo pi
千家信息网最后更新 2025年12月03日怎么在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/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安全错误
数据库的锁怎样保障安全
数据库登录失败什么意思
金山数据库k
数据库库存安全
5g会不会对服务器有更高要求
周一违章查询服务器
数据库培训讲课的说说
长春可以兼职的软件开发
甘肃服务器机房空调哪个牌子好
ppt的软件开发思路
手机网络服务器突然没有了
云服务器监控管理
天鹅股份网络安全概念
计算机网络技术难找啊
网络安全毕设系统
数据库选择题有哪些
高一网络技术应用教学计划
excel里修改数据库
掌趣科技互联网
天龙八部少年游服务器好玩么
如何判断自己数据库版本
qq网络安全总队
网络安全知识大赛特等奖
京山软件开发招聘
专网网络安全防护
网络安全教育第二课小学
山东济南服务器多少防御
美丽天天秒app软件开发案例
mysql数据库的有点
数据库怎么做计算
还有什么软件开发