【问题标题】:Enabling internal routing in uWSGI在 uWSGI 中启用内部路由
【发布时间】:2015-02-21 20:01:59
【问题描述】:

我有一个使用 uWSGI 的 Django 应用程序。我的 uWSGI 配置是:

[uwsgi]
http = 127.0.0.1:8000
env = DJANGO_SETTINGS_MODULE=my_django_app.settings
module = my_django_app.wsgi:application
home = /var/www/myapp/venv
chdir = /var/www/myapp/app
pidfile = /tmp/myapp.pid
logger = syslog
logfile-chown = True
logfile-chmod = 644
touch-logreopen = /var/www/uwsgi/log/rotate_monitor
uid = myapp
gid = myapp
master = True
vacuum = True
harakiri = 20
max-requests = 5000
processes = 4
threads = 1
post-buffering=4096
touch-reload = /var/www/myapp/conf/uwsgi.ini

route = ^/test log:someone called /test

但是路由指令不起作用,我得到常规的 uwsgi 日志条目。我玩了很多,但找不到让它工作的方法。有任何想法吗?我的 uWSGI 版本是 2.0.5.1

【问题讨论】:

  • 您的实例中是否启用了内部路由?如果它不可用,您应该在启动日志中收到警告
  • @roberto 你是完全正确的,我在日志中发现以下标志:!!!没有内部路由支持,用 pcre 支持重建!!!

标签: django installation server uwsgi


【解决方案1】:

[uwsgi]

base = /var/www/html/poopbuddy-api

chdir = %(base)

app = app

我不完全知道 chdir 的作用,但我认为它修复了它......我猜它至少将默认位置设置为应用程序的根文件夹。当我使用 PyCharm 时也会发生类似的事情,我必须从“编辑配置”或“编辑/调试配置”窗口设置“工作目录”。

【讨论】:

    【解决方案2】:

    我必须安装支持 pcre 的 uWSGI。它解决了路由问题。

    为此,我必须安装 pcre lib(对于 Ubuntu,该软件包名为 libpcre3),然后重新安装 uWSGI。由于 PCRE 已经在您的系统中,uWSGI 将在 pcre 支持下自动编译。

    @tobias.mcnulty 评论中的一些要点也可能有用:

    • Ubuntu上的libpcre3-dev包也需要安装
    • 之后您可能需要运行pip install -I --no-cache-dir uwsgi 重新安装它,否则您可能会得到相同的缓存轮。
    • 日志中的错误是!!! no internal routing support, rebuild with pcre support !!!

    【讨论】:

    • 注意,在 Ubuntu 上您还需要 libpcre3-dev 软件包,并且您需要运行 pip install -I --no-cache-dir uwsgi 重新安装它,否则您可能会得到相同的缓存轮。日志中的错误是!!! no internal routing support, rebuild with pcre support !!!
    • @tobias.mcnulty,谢谢你的评论,我会把它添加到答案中
    猜你喜欢
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    相关资源
    最近更新 更多