如何用 uWSGI 托管 Django

    参见

    uWSGI 文档提供了一个覆盖 Django,nginx,和 uWSGI(一个配置,多种适配)。以下文档专注于如何用 uWSGI 集成 Django。

    uWSGI 百科介绍了几种 。Pip (Python 包管理器)能让你仅用一行代码就安装任意版本的 uWSGI。例子:

    uWSGI 以客户端-服务端模型运行。Web 服务器(例如 nginx,Apache)与一个 “worker” 进程交互,提供动态内容。

    配置并启动用于 Django 的 uWSGI 服务器

    以下是个示例命令,用于启动一个 uWSGI 服务器:

    假设你有个叫做 mysite 的顶级项目包,期中包含一个模板 mysite/wsgi.py,模块包含一个 WSGI application 对象。如果你使用的是较新的 Django,这就是你运行 django-admin startproject mysite (使用你的项目名替换 )后得到的目录结构。若该文件不存在,你需要创建它。参考文档 如何使用 WSGI 进行部署 看看你需要配置的默认内容,以及你还能添加什么。

    Django 指定的参数如下:

    • module:要使用的 WSGI 模块——可能是 创建的 的模块。
    • home: 可选的路径,指向你工程的虚拟环境。

    示例 ini 配置文件:

    为文件上传修复 UnicodeEncodeError

    如果上传的文件名包含非 ASCII 字符时,可能抛出 ,确保 uWSGI 已正确配置,能接受非 ASCII 字符的文件名,通过在 uwsgi.ini 添加以下内容:

    参考 Unicode 参考指引的 文件 章节获取细节信息。

    参考 uWSGI 文档 获取更多关于开启,关闭和重载 uWSGI workers 的信息。