[uwsgi]
plugins=python36
`uwsgi` 是一个用于部署 Python Web 应用的服务器,它支持多种语言和协议。配置文件通常是一个 INI 格式的文件,其中包含了用于启动和运行 `uwsgi` 服务器的各种设置。配置文件中的每个部分都以方括号 `[]` 包围,例如 `[uwsgi]`。
在你提供的配置片段 `[uwsgi]` 中,`plugins=python36` 是一个配置指令,它告诉 `uwsgi` 服务器需要加载的插件。这里的 `python36` 指的是 Python 3.6 插件,它允许 `uwsgi` 服务器运行 Python 3.6 编写的 Web 应用。
下面是一些 `uwsgi` 配置文件的常见配置项,以及它们的含义:
- `socket`: 指定 `uwsgi` 监听的 socket 文件或端口。例如,`socket = :8000` 表示 `uwsgi` 将监听 8000 端口。
- `chdir`: 改变当前工作目录到指定的目录。例如,`chdir = /path/to/your/app`。
- `module`: 指定 Python 应用的入口模块。例如,`module = myapp.wsgi:application` 表示 `uwsgi` 将加载 `myapp` 模块下的 `wsgi` 子模块,并将其 `application` 属性作为 WSGI 应用的入口点。
- `processes`: 设置工作进程的数量。例如,`processes = 4` 表示 `uwsgi` 将启动 4 个工作进程。
- `threads`: 设置每个进程的线程数。例如,`threads = 2` 表示每个工作进程将使用 2 个线程。
- `master`: 以主进程模式运行 `uwsgi`。这允许 `uwsgi` 管理其子进程,如果一个子进程崩溃,它将自动重启。
- `vacuum`: 清理旧的 socket 文件。设置为 `true` 可以防止旧的 socket 文件占用端口。
- `daemonize`: 将 `uwsgi` 服务器放到后台运行。通常指定一个日志文件,例如 `daemonize = /path/to/uwsgi.log`。
### 示例配置文件
假设你有一个 Python 3.6 Web 应用,并且你想要使用 `uwsgi` 来部署它。你的配置文件可能看起来像这样:
[uwsgi]
# 加载 Python 3.6 插件
plugins = python36
# 指定 Python 应用的入口模块
module = myapp.wsgi:application
# 改变工作目录到应用所在目录
chdir = /path/to/your/app
# 监听 8000 端口
socket = :8000
# 启动 4 个工作进程
processes = 4
# 以主进程模式运行
master = true
# 清理旧的 socket 文件
vacuum = true
# 日志记录到指定文件
daemonize = /path/to/uwsgi.log
这个配置文件告诉 `uwsgi` 服务器使用 Python 3.6 插件,加载 `myapp.wsgi` 模块下的 `application` 属性作为 WSGI 应用的入口点,监听 8000 端口,启动 4 个工作进程,以主进程模式运行,清理旧的 socket 文件,并将日志记录到 `/path/to/uwsgi.log` 文件中。
要启动 `uwsgi` 服务器,你可以在命令行中使用以下命令:
uwsgi --ini /path/to/your/uwsgi.ini
这将使用指定的配置文件启动 `uwsgi` 服务器。