ngix uwsgi django组合建站
由于最近要做一个创新项目,需要用到python web开发,于是研究了一下django这个很全能的python web框架。
为什么需要ngix呢?
首先说一下为什么需要这三者组合建站,只用django的话,不能做到负载均衡,比如需要请求一些静态资源,就需要django全部去处理,不能将请求合理分发,而ngix正好能解决这样的问题(似乎这个项目也不用怎么考虑负载均衡哈~~但是提高逼格总是必须的),ngix通过配置可以将一些动态请求发给django处理,而对于静请求则自己处理,另外如果网站上还要运行php页面,那么ngix绝对是一个很好的选择,将对php的请求分发给apache处理,ngix和apache通过socket端口通信,然后返回给客户端处理后的结果。
然后为什么又需要uwsgi呢?
WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx)与应用服务器(如uWSGI服务器)通信的一种规范。然后uwsgi是实现了uwsgi和WSGI两种协议的Web服务器。简单点说就是运用uwsgi我们可以实现由uwsgi启动django,然后ngix通过端口与uwsgi通信,在这个过程中,gjango实现了wsgi服务器的功能,ngix实现了wsgi客户端的功能,只不过在web里面,ngix扮演的又是服务器(计算机中的软件通信有很多都是客户端服务器模式。如文件资源就是一个服务,然后应用程序实现了了相应的协议从而去调用这个服务)。这样就实现了uwsgi在ngix和django的中转。
为什么不让ngix直接与django通信呢?
uWSGI,既不用wsgi协议也不用fcgi协议,而是自创了一个uwsgi的协议,据说该协议大约是fcgi协议的10倍那么快。
缉粻光救叱嚼癸楔含盲uWSGI的主要特点如下:
◆超快的性能。
◆低内存占用(实测为apache2的mod_wsgi的一半左右)。
◆多app管理。
◆详尽的日志功能(可以用来分析app性能和瓶颈)。
◆高度可定制(内存大小限制,服务一定次数后重启等)。
这三者之间的原理如下,
<span><code>the web client the web server(nginx) the socket uwsgi Django</code></span>
开始部署
1.安装ngix sudo apt-get install ngix
由于我的机器上面还有apache,我需要修改ngix的监听端口为8080
修改如下
server { listen 8080 default_server; listen [::]:8080 default_server ipv6 root /var/ngix; #将根目录改为/var/ngix index index.html index.htm; }
2.安装django
用python自带的包管理器easy_install安装 easy_install django会自动安装最新版本
3.安装uwsgi
<code>apt-get install python-dev #不安装这个,下面的安装可能会失败 pip install uwsgi 如果是apt-get安装就需要 sudo apt-get install uwsgi-plugin-python </code>
.
└── myproject
├── app
│ ├── admin.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── manage.py
├── myproject
│ ├── django.xml
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
├── templates
└── test.py
django.xml文件内容为:
<uwsgi> <socket>127.0.0.1:8630</socket> <chdir>/var/ngix/myproject/myproject</chdir> <pythonpath>..</pythonpath> <module>wsgi</module> </uwsgi> 这里需要注意的是wsgi模块,网上很多都是错误的,直接用自动生成的就行。
然后需要在ngix的配置文件中添加
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8630; }
重启ngix服务,然后启动uwsgi服务
$ uwsgi -x django.xml --plugin python
需要在django.xml所在目录执行
最后在浏览器输入127.0.0.1:8080就可以看见django的调试页面了~~
折腾了一天,大功告成
总结一下学到的其他东西:删除/etc/dpkg/info/下面对应的安装文件,可以解决apt子进程启动出错的问题。删了以后需要autoremove一下
最后,分布式真是个大坑!!!!!!!!
资料分享:wsgi概念 uwsgi概念 基于nginx和uWSGI在Ubuntu上部署Django
如何把uwsgi交给supervisor管理 unavailable-modifier-requested-0解决办法
uwsgi手册
uwsgi部署django常见问题汇总
django中文教程 还是建议去看英文教程,完整点
如上便是我参考的资料
以上就介绍了ngix uwsgi django组合建站,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

“你的组织要求你更改PIN消息”将显示在登录屏幕上。当在使用基于组织的帐户设置的电脑上达到PIN过期限制时,就会发生这种情况,在该电脑上,他们可以控制个人设备。但是,如果您使用个人帐户设置了Windows,则理想情况下不应显示错误消息。虽然情况并非总是如此。大多数遇到错误的用户使用个人帐户报告。为什么我的组织要求我在Windows11上更改我的PIN?可能是您的帐户与组织相关联,您的主要方法应该是验证这一点。联系域管理员会有所帮助!此外,配置错误的本地策略设置或不正确的注册表项也可能导致错误。即

查看django版本步骤:1、打开终端或命令提示符窗口;2、确保已经安装了Django,如果没有安装Django,可以使用包管理工具来进行安装,输入pip install django命令即可;3、安装完成后,可以使用python -m django --version来查看Django的版本。

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

在iOS17中,Apple为其移动操作系统引入了几项新的隐私和安全功能,其中之一是能够要求对Safari中的隐私浏览选项卡进行二次身份验证。以下是它的工作原理以及如何将其关闭。在运行iOS17或iPadOS17的iPhone或iPad上,如果您在Safari浏览器中打开了任何“无痕浏览”标签页,然后退出会话或App,Apple的浏览器现在需要面容ID/触控ID认证或密码才能再次访问它们。换句话说,如果有人在解锁您的iPhone或iPad时拿到了它,他们仍然无法在不知道您的密码的情况下查看您的隐私

著名的激活脚本MAS2.2版本重新支持数字激活,方法源于@asdcorp及团队,MAS作者称之为HWID2。https://github.com/massgravel/Microsoft-Activation-Scripts下载gatherosstate.exe(非原版,已改造),带参数运行它,生成门票GenuineTicket.xml。先看一下原先的方法:gatherosstate.exePfn=xxxxxxx;DownlevelGenuineState=1再对比一下最新方法:gatheros

Django和Flask都是PythonWeb框架中的佼佼者,它们都有着自己的优点和适用场景。本文将对这两个框架进行对比分析,并提供具体的代码示例。开发简介Django是一个全功能的Web框架,它的主要目的是为了快速开发复杂的Web应用。Django提供了许多内置的功能,比如ORM(对象关系映射)、表单、认证、管理后台等。这些功能使得Django在处理大型

Django是一个完整的开发框架,该框架涵盖了Web开发生命周期的各个方面。目前,这个框架是全球范围内最流行的Web框架之一。如果你打算使用Django来构建自己的Web应用程序,那么你需要了解Django框架的优点和缺点。以下是您需要知道的一切,包括具体代码示例。Django优点:1.快速开发-Djang可以快速开发Web应用程序。它提供了丰富的库和内

查看django版本的方法:1、通过命令行查看,在终端或命令行窗口中输入“python -m django --version”命令;2、在Python交互式环境中查看,输入“import django print(django.get_version())”代码;3、检查Django项目的设置文件,找到名为INSTALLED_APPS的列表,其中包含已安装的应用程序信息。
