通过uwsgi部署Django

WSGI

  • python manage.py runserver:这是一款适合开发阶段使用的服务器,不适合运行在真实的生产环境中
  • 在生产环境中使用WSGI
  • WSGI:Web服务器网关接口,英文为Python Web Server Gateway Interface,缩写为WSGI,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受
  • WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行
  • 命令django-admin startproject会生成一个简单的wsgi.py文件,确定了settings、application对象
    • application对象:在Python模块中使用application对象与应用服务器交互
    • settings模块:Django需要导入settings模块,这里是应用定义的地方
  • 此处的服务器是一个软件,可以监听网卡端口、遵从网络层传输协议,收发http协议级别的数据

uWSGI

  • uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器
  • uWSGI代码完全用C编写
  • 安装uWSGI
pip install uwsgi

启动uWSGI来运行一个HTTP服务器/路由器,它会传递请求到你的WSGI应用:

方式一,直接添加参数:

uwsgi --http :8000--chdir /path/fto/your/project/ --wsgi-file project/wsgi.py --master --processes 4 --threads 2

Ctrl+C关闭 uwsgi 进程

方式二,将参数写入一个ini文件,将该文件添加到命令后,其中该文件名可自行命名:

uwsgi --ini uwsgi.in

  • 配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置
[uwsgi]
http=:8000                   //(直接做web服务器,使用http)
chdir=/path/to/your/project  // 项目根目录
wsgi-file=project/wsgi.py    // 相对项目目录的wsgi.py文件目录
processes=4          // 设置进程数
threads=2            // 设置线程数
master=True          // 使用主进程
pidfile=uwsgi.pid    // uwsgi的进程文件,设置此项后会自动创建
daemonize=uswgi.log  // 日志文件,设置此项后会自动创建
harakiri = 10        // 摧毁那些卡住超过10秒的进程 
  • 启动:uwsgi --ini uwsgi.ini
  • 停止:uwsgi --stop uwsgi.pid
  • 重启:uwsgi --reload uwsgi.pid
  • 使用http协议查看网站运行情况,运行正常,但是静态文件无法加载
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于如何使用uWSGI部署Django项目的简单步骤: 1. 安装uWSGIDjango 首先,你需要安装uWSGIDjango。你可以使用pip安装这些软件包。在命令行中输入以下命令: ``` pip install uwsgi pip install django ``` 2. 创建Django项目 创建一个Django项目,并确保它能够在本地运行。 3. 创建uWSGI配置文件 创建一个名为uwsgi.ini的文件,该文件将包含uWSGI的配置信息。在这个文件中,你需要定义Django应用程序的位置、uWSGI服务器的配置和其他必要的配置。这是一个示例uwsgi.ini文件: ``` [uwsgi] project = myproject base_dir = /path/to/my/project chdir = %(base_dir)/%(project) module = %(project).wsgi:application home = /path/to/my/virtualenv processes = 4 threads = 2 socket = /tmp/%(project).sock chmod-socket = 664 vacuum = true ``` 在这个文件中,你需要将project和base_dir替换为你的项目名称和项目路径。你还需要将home设置为你的虚拟环境的路径,如果你没有使用虚拟环境,则可以将其删除。processes和threads指定了uWSGI服务器使用的进程和线程数。socket定义了uWSGI服务器的套接字位置。chmod-socket将套接字的访问权限设置为664,这样你的Web服务器可以访问它。vacuum=true将在uWSGI服务器停止时清除套接字文件。 4. 启动uWSGI服务器 运行以下命令启动uWSGI服务器: ``` uwsgi --ini /path/to/your/uwsgi.ini ``` 5. 配置Web服务器 最后,你需要将Web服务器配置为将请求转发到uWSGI服务器。这个过程取决于你使用的Web服务器。如果你使用Nginx,你可以使用以下示例配置文件: ``` server { listen 80; server_name example.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/myproject.sock; } } ``` 在这个文件中,你需要将server_name替换为你的域名。uwsgi_pass指定了请求应该转发到的uWSGI服务器套接字位置。 这就是使用uWSGI部署Django应用程序的基本步骤。希望这可以帮助你开始。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值