问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Linux上使用Nginx和Gunicorn托管Django应用

发布网友 发布时间:2022-04-21 22:53

我来回答

1个回答

热心网友 时间:2022-04-09 13:46

apt-get
服务器拿到手后第一件事就是更新apt-get,要换源什么的自己搜一大堆。之前因为系统不小心选成了Ubuntu 10.04了,遇到一大堆问题,后来换到12.04一切顺利。
apt-get update

pip
pip还是建议更换源,速度是飞一般的感觉。具体方法可以看看我之前介绍的那篇文章《Pythoner的福利,豆瓣的PyPI源》
sudo apt-get install python-pip

Django
Django不用说肯定是用pip装,我一般是用的最新版,这样就可以了。
sudo pip install django

Nginx
首先给默认的Nginx配置备个份,这是好习惯。目录位于/etc/nginx/sites-available/default
cp /etc/nginx/sites-available/default default.bak

然后Vim编辑
vim /etc/nginx/sites-available/default

server {
listen 80;

server_name www.isaced.com;
access_log /var/log/nginx/isaced.log;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /static/ {
root /data/isaced; #Django项目所在目录
}

以上是最简单的Nginx配置,目的是为能跑起来就行,更多其他详细配置还请参照其他文章。
Gunicorn
Gunicorn是一个朋友(CloverStd)推荐的,一个开源Python WSGI UNIX的HTTP服务器,Github仓库地址在这,传说速度快(配置快、运行快)、简单,默认是同步工作,支持Gevent、Eventlet异步,支持Tornado,官方有很详细的文档可以参阅。
需要在你的Django项目的settings.py中的INSTALLED_APPS加入:gunicorn
gunicorn --worker-class=gevent isaced.wsgi:application

--worker-class
指定工作方式,这里我用的gevent
如果提示You need gevent installed to use this worker则表示你还没有安装gevent。
isaced.wsgi:application
这里是指你的项目名,在Django创建项目的时候会自动生成对应名字文件夹中的wsgi.py,这里就是指的它。
###nohup
nohup是一个Linux命令,用来不挂断地运行某条命令。这里我们用它来执行gunicorn,来保持gunicorn进程不会被挂断。
nohup gunicorn --worker-class=gevent NSLoger.wsgi:application -b 127.0.0.1:8000&

--worker-class来指定工作方式为gevent,-b指定地址和端口号。
注意:在尾部加上&(and)字符表示后台运行
执行这条命令后可以用ps命令查看进程,就能看到gunicorn了~
Start
好了,以上就是整个服务器的配置了。然后我们重启下Nginx,刷新页面就能看到你的Django App了。
sudo service nginx restart
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
青海摇什么时候火的 宋庄镇都有哪些村 唐山多地解除封控管理、静态管理,市民仍需做好哪些防护? 拼多多上面的旗舰店是正品吗 ...尺是20:1的图纸上,应画多少厘米,在比例尺是1:200的图纸上测_百度知... 4x2=8,4x20=8,4x200=800,我发现了:一个因数不变,另外一个因数乘以几,积... 小学三年级数学上册4X2=8,4X20=80,4X200=800我发现:一个因数不变,另... 描写雪的段落优选好句60句 程序员最低学历是多少 电脑不识别独显了怎么办? 麻烦罗列出世界史上所有战列舰的名称及建造国。拜... 二战智利与巴西海军的军力如何,各有那些战舰(主... 求一战到二战期间所有战列舰型号、基本数据以及武... 二战时南美洲战舰有哪些?求解答。谢谢 ar导航放在车上哪个位置 丁威特行车记录仪能连接AR导航吗 高德导航ar模式打开后为什么像相机一样,没路线地... 为什么AR导航检测不到摄像头 ar导航摄像头双录摄像头怎么安装 汽车车内能录像吗? ar实景导航与ar实景记录仪是一回事吗 车机版高德地图,链接手车互联,可以用手机作为摄... 行车记录仪配合手机实现AR导航,真的好用吗?喵哥... 汉兰达机车版高德地图AR导航怎么链接行车记录仪 怎样对工作表数据进行排序 Excel的工作表排列顺序是不是固定的? 如果对excel一个工作簿中的多个工作表进行排序,应... 怎么对EXCEL工作薄中的部分表格排序 如何将多个excel工作表进行快速排序 如何排序excel工作簿 linux django uwsgi+nginx 怎么调试 linux+nginx+django如何运行多个项目 冰淇淋和冰激凌居然是两种不同的食物,那它们到底... 在Django nginx gunicorn设置外部IP错误问题,怎么... 在Linux系统上怎么通过uWSGI配置Nginx+Python环境 centos7+Django+uwsgi+Nginx 部署服务器外网不能访... 想用django 做一个网站,不知道要学习哪些知识?最... 冰激淋和冰淇淋哪一个是正确的叫法?两者又有什么... python 3下有什么 fastcgi 推荐 求助,菜菜菜鸟级问题,django怎么使用https协议 冰激凌和冰淇淋的区别 有没有人用过django 雪糕和冰淇淋有什么区别? 云闪付跟百信银行什么关系? 姓潘的男孩缺水和土取什么名字好?谢谢 男孩姓潘缺水取什么名字好呢 姓潘。属狗。2006年阴历四月二十日、阳历五月二十... 潘姓男孩起名缺金缺水 五行缺水缺木姓潘的男孩起什么名字好 男孩缺水缺火 姓潘起什么名字