我正在尝试设置一个带有nginx
、uwsgi
和django
的网络服务器。 nginx
工作,它以/srv
的方式提供文件,就像我打算的那样。但是我无法uwsgi
正常工作。我最大的问题是我使用了本教程,而他们似乎没有使用我使用的uwsgi
版本。
有一次他们打电话给uwsgi --http :8000 --wsgi-file test.py
,但我uwsgi
既没有--http
多头选项,也没有--wsgi-file
多头选项。 uwsgi --version
打印2.0.7-debian
.
我可以打电话代替--wsgi-file
什么?
更新:
这工作正常,即我可以在端口 8000 上的本地主机上看到我的网站:
python3 manage.py runserver 0.0.0.0:8000
但是,这不会:
uwsgi --http :8000 --module django_test.wsgi
它会抱怨,它不知道多头期权--http
以及多头期权--module
。这一切似乎都归结为 uwsgi,它在我的机器上的行为与其他任何地方不同。
从 debian 软件包安装的 uWSGI 没有任何内置插件,要使该参数正常工作,您将需要:
- 用于
--http
参数的 http 插件 - 用于
--module
(或任何WSGI相关)参数的Python插件
你可以用两种方式解决这个问题:安装所有必需的插件(uwsgi-plugins-all
软件包将安装debian上所有可用的插件)并显式加载它们(--plugin http
和--plugin python
),或者用功能齐全的插件替换uWSGI(sudo pip install uwsgi
会这样做)。第二种解决方案将把你的uWSGI绑定到某个python版本,对于第一个,你可以加载另一个python插件(例如python3
)。