【问题标题】:uWSGI doesn't recognize --http nor --wsgi-file optionsuWSGI 无法识别 --http 和 --wsgi-file 选项
【发布时间】:2016-05-13 05:19:52
【问题描述】:

我正在尝试使用nginxuwsgidjango 设置网络服务器。 nginx 有效,它像我打算的那样为/srv 中的文件提供服务。但是我无法让uwsgi 正常工作。我最大的问题是我使用了this tutorial,而他们似乎没有使用我使用的uwsgi 的版本。

他们有一次调用uwsgi --http :8000 --wsgi-file test.py,但我的uwsgi 既没有--http 长选项,也没有--wsgi-file 长选项。 uwsgi --version 打印 2.0.7-debian

我可以用什么来代替--wsgi-file

更新:

这很好,即我可以在 localhost 的 8000 端口上看到我的网站:

python3 manage.py runserver 0.0.0.0:8000

但事实并非如此:

uwsgi --http :8000 --module django_test.wsgi

它会抱怨,它不知道长选项--http 以及长选项--module。这一切似乎都归结为 uwsgi,它在我的机器上的行为与其他地方不同。

【问题讨论】:

  • 这不是您问题的真正答案,但我个人会推荐 gunicorn 而不是 uwsgi。 1200 个(是的,我数过)uwsgi 命令行参数只是一团糟
  • 已经用gunicorn 运行了,哇,速度快得令人难以置信。谢谢你的推荐!但是,如果有人知道这个谜团的答案,我仍然想听听。
  • @Wolph uWSGI 与 gunicorn 完全不同。 uWSGI 不仅是一个 wsgi 服务器,它还可以做更多事情(psgi、php、cgi、路由、提供静态文件等等)。它还包含管理正在运行的 uWSGI 实例,这就是它包含这么多选项的原因。但是当作为普通 wsgi 服务器使用时,您将需要其中的一小部分。
  • @GwynBleidD:是的,但如果他运行的是 Django,而不是常规的 Python 安装,在这种情况下,Gunicorn 绝对是一个更简单的选择,而且效果很好:)

标签: python linux django nginx uwsgi


【解决方案1】:

从 debian 包安装的 uWSGI 没有任何内置插件,要使这些参数起作用,您需要:

  • --http参数的http插件
  • --module(或任何 wsgi 相关)参数的 python 插件

您可以通过两种方式解决此问题:安装所有必需的插件(uwsgi-plugins-all 软件包将在 debian 上安装所有可用插件)并显式加载它们(--plugin http--plugin python)或将 uWSGI 替换为全功能插件( sudo pip install uwsgi 会这样做)。第二个解决方案会将你的 uWSGI 绑定到某个 python 版本,对于第一个,你可以加载另一个 python 插件(例如python3)。

【讨论】:

  • 我安装了几个uwsgi 实例。可执行文件 uwsgi_python3 对我有用。
猜你喜欢
  • 2015-09-28
  • 2016-03-05
  • 2019-09-22
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 2014-02-13
相关资源
最近更新 更多