在uWSGI中启用内部路由

时间:2014-12-23 16:37:06

标签: django installation server uwsgi

我有一个使用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

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

2 个答案:

答案 0 :(得分:7)

我必须使用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 !!!

答案 1 :(得分:0)

[uwsgi]

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

chdir = %(base)

app = app

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