0

0

ngix uwsgi django组合建站

php中文网

php中文网

发布时间:2016-08-08 09:23:49

|

1302人浏览过

|

来源于php中文网

原创

由于最近要做一个创新项目,需要用到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性能和瓶颈)。
◆高度可定制(内存大小限制,服务一定次数后重启等)。

这三者之间的原理如下,

the web client <-> the web server(nginx) <-> the socket <-> uwsgi <-> Django

开始部署

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

行业贸易网站管理系统 2007 Beta 1
行业贸易网站管理系统 2007 Beta 1

1.修正BUG站用资源问题,优化程序2.增加关键词搜索3.修改报价4.修正BUG 水印问题5.修改上传方式6.彻底整合论坛,实现一站通7.彻底解决群发垃圾信息问题。注册会员等发垃圾邮件7.彻底解决数据库安全9.修改交易方式.增加网站担保,和直接交易两中10.全站可选生成html.和单独新闻生成html(需要装组建)11. 网站有10中颜色选择适合不同的行业不同的颜色12.修改竞价格排名方式13.修

下载
apt-get install python-dev #不安装这个,下面的安装可能会失败
pip install uwsgi
如果是apt-get安装就需要     sudo apt-get install uwsgi-plugin-python
工具安装好以后就可以开始配置项目了,我用的开发环境是pycharm,可以自动生成django项目,如果不是需要运行django的admin.py生成相应的项目文件下面是我的项目的结构

.
└── 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模块,网上很多都是错误的,直接用自动生成的就行。

用socket和ngix进行通信,端口号为本机的8630端口

然后需要在ngix的配置文件中添加

location / {
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:8630;
}

uwsgi是ngix自带的模块

重启ngix服务,然后启动uwsgi服务

$ uwsgi -x django.xml --plugin python

需要在django.xml所在目录执行

最后在浏览器输入127.0.0.1:8080就可以看见django的调试页面了~~

折腾了一天,大功告成ngix uwsgi 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工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1044

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

334

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

213

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

35

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

111

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

77

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

813

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

97

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 4.5万人学习

Django DRF 源码解析
Django DRF 源码解析

共21课时 | 1.5万人学习

Django参考手册
Django参考手册

共0课时 | 0.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号