nginx uwsgi django部署

本文介绍如何使用uwsgi和nginx部署Django应用,包括下载安装uwsgi和Django、配置uwsgi及nginx、启动服务等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 软件下载地址:

uwsgi 

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz

django

wget http://media.djangoproject.com/releases/1.2/Django-1.2.5.tar.gz

2. 安装

uwsgi安装 

cd  uwsgi-0.9.6.8
python uwsgiconfig.py --build
cd nginx
cp uwsgi_params /usr/local/nginx/conf/

 3. 建立项目目录

cd /root
django-admin.py startproject  my_django

vi uwsgi.xml

<uwsgi> 
  <socket>0.0.0.0:8000</socket> 
  <listen>20</listen> 
  <master>true</master> 
  <pidfile>/usr/local/nginx/uwsgi.pid</pidfile> 
  <processes>2</processes> 
  <module>django_wsgi</module>  #这个文件下面要建立
  <pythonpath>/root/my_django</pythonpath>   #刚才建立项目的路径
  <profiler>true</profiler> 
  <memory-report>true</memory-report> 
  <enable-threads>true</enable-threads> 
  <logdate>true</logdate> 
  <limit-as>6048</limit-as
</uwsgi>

vi django_wsgi

import os
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_django.settings'    #这里的my_django.settings 表示 "项目名.settings"
application = django.core.handlers.wsgi.WSGIHandler()

4. 添加nginx配置

server { 
        listen  80; 
         server_name 192.168.0.100; 
   
          location / { 
            root /root/my_django;
            uwsgi_pass   127.0.0.1:8000; 
            include     uwsgi_params; 
            access_log  off;  }
 

5. 启动uwsgi和nginx

/usr/local/nginx/sbin/nginx
uwsgi -x /root/my_django/uwsgi.xml &

好了,打开浏览器测试下吧

### NginxuWSGIDjango 的架构图 在典型的 Web 应用程序部署环境中,Nginx 作为反向代理服务器接收客户端请求并将其转发给 uWSGI,而 uWSGI 则负责与 Django 进行交互处理业务逻辑。这种三层架构能够有效地分离关注点,并提高系统的可扩展性和性能。 #### 架构概述 - **Web 客户端 (Browser)** 发起 HTTP 请求至 Nginx 所监听的 IP 地址和端口。 - **Nginx** 接收到请求后依据配置文件中的指令决定如何响应这些请求;对于静态资源可以直接由 Nginx 返回,而对于动态内容则会通过 Unix Socket 或 TCP/IP 协议传递给 uWSGI 处理器。 - **uWSGI** 收到请求之后加载相应的 Python WSGI 应用——即 Django 实例来执行具体的视图函数等操作,最后再将生成的结果返回给 Nginx[^1]。 #### 示例架构图说明 以下是简化版的文字描述: ``` +-------------------+ | Web Client | +--------+----------+ | v +--------v----------+ | Nginx | <-- 静态文件服务 + 反向代理 +--------+----------+ | v +--------v----------+ | uWSGI | <-- 负责运行 Django 应用 +--------+----------+ | v +--------v----------+ | Django App | <-- 提供核心应用功能 +-------------------+ ``` 为了更直观理解整个流程,在实际应用场景下可以参考如下图形化表示方式(假设为基于 Linux 系统环境下的部署): ```plaintext [Client Browser] --HTTP Request--> [Nginx Server] [Nginx Server] --Pass to--> [uWSGI Process Manager] [uWSGI Process Manager] --Invoke Application Code In--> [Django Framework] [Django Framework] --Generate Response Data For--> [uWSGI Process Manager] <uWSGI Process Manager> --Return To--> [Nginx Server] <Nginx Server> --Send Back HTML/CSS/JS Etc.---> [Client Browser] ``` 此架构允许开发者专注于编写应用程序代码的同时利用成熟的中间件组件实现高效的网络通信和服务管理。 ```bash # 测试连接是否正常工作 curl http://localhost:8000/ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值