Django中配置Gunicorn

Django中配置Gunicorn,第1张

Gunicorn是一个被广泛使用的高性能的Python WSGI UNIX >

在杜赛的博客中,对Django+Nginx+Gunicorn这三兄弟的描述是这样的:

如果用餐馆来做比喻的话,Nginx 就是迎宾,客人如果点了酒水,迎宾自己就帮忙拿了;而 Gunicorn 是传菜员,Django 是厨师,他两一起满足客人对现炒美食的需求。

这个比喻具体是在说什么呢?

首先,我们要分清楚 Web应用 Web服务器 这两个概念。Django开发出来的程序是Web应用,它本身不能起到监听用户请求并响应这种 “收发员” 的功能。监听用户请求并响应是 Web服务器 的职责。

Nginx就是一个 Web服务器 。即使没有web应用运行,只有一大堆 html 静态页面,我们也可以通过配置路由和返回的页面来使用Nginx搞出一个静态网站。

Django开发的Web应用本身是没有和客户端(浏览器)交互的功能的。我们在本地能够运行它是只是因为Django其内置了一个小型Web服务器而已,不过它性能受限,不能用于生产环境。

那么将Nginx和Django组合是不是就大功告吉了呢?没那么简单。Python官方定义了WSGI(Web Server Gateway Interface)作为Web服务器与Python Web应用程序或框架之间的建议标准接口。这样可以提高Web应用程序和服务器之间的可移植性。显然Django需要一个实现WSGI的服务器来和它配合。然而Nginx作为一个普通的>

前几天老师让我把一个Django项目(爬虫网页)放到校园内网上,但是我想先用自己的服务器来尝试一下。之前刚好有在Digital Ocean上买过服务器用来运行ss脚本,平时服务器一直放着没啥用,所以就拿它来试验一下。

废话不多说,第一步通过WinSCP软件把Django文件传到服务器上。

在服务器中安装Django需要的环境和我所需要的Python第三方库。

以上所有步骤完成后,还需要进行一步 *** 作,这是我经历的一个 。 打开Django文件目录中的 settingspy ,把 ALLOWED_HOSTS=[] 改为 ALLOWED_HOSTS=[""] 。

在服务器中打开到 managepy 所在的目录,输入命令:
python3 managepy runserver 0000:8000
然后按下回车,在浏览器中输入: 该服务器IP地址:8000 ,大功告成!

Attention:
1 python3 不是特定的,是根据你的Django项目所需要的环境指定的。
2 8000 是端口号,可以修改。

如果想要Django项目一直运行,关闭终端后还在运行,即需要运行如下命令, nohup command & , command 即位上文所说的 python3 managepy runserver 0000:8000 。

后端用的drf,使用的是uwsgi+nginx

进入服务器项目文件目录下,我的django项目放在了“/usr/myProjects/”目录下了。在managepy同级目录下创建uwsgiini文件,配置如下:

测试效果命令:

如果访问:xxxxxxxxxxx:8000 成功, 则uwsgiini配置成功

我的nginxconf所在位置是“/etc/nginx/nginxconf”
配置文件如下:

1、第一行

主要就是给nginx加权限,vue部署后使用history路由时会去掉地址后面的‘#’号,打包部署后不加权限会有bug。
2、如配置所示,有两个Server,分别部署了前端服务,和后端服务,值得注意的是两个Server用的是同一个服务器,监听的端口不同。
3、vue部署需要注意的是反向代理地址:

以及后面的端口问题

4、后端的Server需要注意location中的uwsgi_pass 后面的端口号要和uwsgiini中配的相同,否则监听不到

5、后端跨域问题。如果遇到跨域需要自己网上找配置,我的没遇到,可能是因为我在django的settings中配置了跨域。
6、django-suit后台管理样式崩了,需要改,但是api可以正常访问,这个有空再说
7、我开始后台监听的是8008端口,vue前端监听的是80端口,这样前端显示好看。然而问题出现了,虽然后台api可以正常访问,vue的本地开发环境也能正常运行且文字、资源均显示正常,但是前端vue打包线上部署后,文字信息显示正常,信息缺失8008端口,导致显示不出来。为图方便我选择了前端监听8008端口,后端监听80,部署后显示正常。原因不太清楚///////有空再说吧。
8、不要问我为啥都前后端分离了还部署到一个服务器上?穷,而且只是测试,没必要
9、此文仅适合入门

关于django后台admin(suit)缺失的修改(参考:django中文网: >

搭建环境,就是需要编程用的语言和用什么进行编程,用什么进行调试的这几个条件的总和。

搭建框架,一般不是搭建,都是尽量选择现有的,自己设计构造框架,在编程中总会遇见很多类似的问题和需求,为了避免重复编写,于是就有人设计了框架,用来简化重复需求的编写。

拿python来说,你要使用python来编写程序,那么必须得安装python,要编代码必须得有个编辑器,如果是要进行WEB的开发,总得有个web服务器用来测试,这些个就是编程环境。

而你准备编写的web程序,并不希望全部一点点都自己来开发,于是就有了django 框架。它已经帮你做了很多web开发的基础工作。利用这个框架你可以更加将注意力集中在你所要实现的功能上。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13498877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-19
下一篇 2023-08-19

发表评论

登录后才能评论

评论列表(0条)

保存