项目部署-uWSGI

酥酥 发布于 2021-09-18 947 次阅读


项目部署-uWSGI

一、WSGI定义

WSGl(Web Server Gateway Interface) Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛使用
  • 使用 python manage. py runserver通常只在开发和测试环境中使用

  • 当开发结束后,完善的项目代码需要在一个高效稳定的环境中运行,这时可以使用WSGI

二、uWSGI定义

  • uWSGI是WSGI的一种,它实现了http协议、WSGI协议以及uwsgi协议

  • uWSGI功能完善,支持协议众多,在 python web圈热度极高

  • uWSGI主要以学习配置为主

三、配置uWSGI

添加配置文件项目同名文件夹/uwsgi.ini 如: mysite1/mysite1/uwsgi.i文件以[uwsgi]开头,有如下配置项: 套接字方式的IP地址:端口号【此模式需要有nginx】 [uwsgi] socket=127.0.0.1:8000 Http通信方式的IP地址: 端口号http=127.0.0.1:8000

  1. 项目当前工作目录
    1. chdir=/home/tarena. /my_project#项目绝对地址
  2. 项目中wsgp文件的目录,相对于当前工作目录
    1. wsgi-file=my_project/wsgi.py#相对上一个的地址
  3. 进程个数
    1. process=4
  4. 每个进程的
    1. 线程个数threads=2
  5. 服务的pid记录文件
    1. pidfile=uwsgi.pid
  6. 服务的目志文件位置
    1. daemonize=uwsgi.log
  7. 开启主进程管理模式
    1. master=true

特殊说明: DJango的 settings.py需要做如下配置
  1. 修改 settings. py.将 DEBUG=Tue改为 DEBUG= False
  2. 修改 settings. py将 ALLOWED HOSTS=[]改为 ALLOWED HOSTS=[网站域名]或者[服务监听的jp地址]

uwsgi运行

启动wsgi

cd到uWSG配置文件所在目录 uwsgi –ini uwsgi.ini

停止 uwsgi

cd到uWSGI配置文件所在目录 uwsgi–stop uwsgi pid

一些运行说明

  1. 无论是启动还是关闭,都需要执行ps auxlgrep uwsgi确认是否符合预期
  2. 启动成功后,进程在后台执行,所有日志均输出在配置文件所在目录的uwsgi.log中
  3. Django中代码有任何修改,需要重新启动uwsgi
仰天大笑出门去,我辈岂是蓬蒿人
最后更新于 2022-01-07