Django 如何修复uWSGI内部路由?

Django 如何修复uWSGI内部路由?,django,server,installation,uwsgi,Django,Server,Installation,Uwsgi,我正在密切关注uWSGI的教程。 但是,我的Django worker无法启动,因为uWSGI无法注册路由。当我用一个日志调用替换SSE服务的套接字时,它能够注册它。我确实确保了套接字存在(我使用一个皇帝来启动两个uWSGI配置) 我发现这建议启用PCRE支持(我已经这样做了)。我的日志文件中不再显示有关PCRE支持的警告 我现在正在尝试两天不同的可能性,我绝对需要有新思维的人的帮助 这是启动django worker时的日志(sse worker已启动): 这是我的01_django.ini文

我正在密切关注uWSGI的教程。 但是,我的Django worker无法启动,因为uWSGI无法注册路由。当我用一个日志调用替换SSE服务的套接字时,它能够注册它。我确实确保了套接字存在(我使用一个皇帝来启动两个uWSGI配置)

我发现这建议启用PCRE支持(我已经这样做了)。我的日志文件中不再显示有关PCRE支持的警告

我现在正在尝试两天不同的可能性,我绝对需要有新思维的人的帮助

这是启动django worker时的日志(sse worker已启动):

这是我的01_django.ini文件:

[uwsgi]
socket = /tmp/django.sock
chown-socket = nginx:nginx
chmod-socket = 664

; wait until the sse app is loaded
wait-for-socket = /tmp/sseapp.sock

; configuring the sse app
; http-socket = :9090
offload-threads = 2
wsgi-file = /srv/okmapgo/okmapgo/wsgi.py
plugins = python

; collect X-Offload-to-SSE header and store it in var X_OFFLOAD
collect-header = X-Offload-to-SSE X_OFFLOAD
collect-header = Content-Type CONTENT_TYPE
; if X_OFFLOAD is defined, do not send the headers generated by Django
;; response-route-if-not = empty:${X_OFFLOAD} disableheaders:
; if X_OFFLOAD is defined, offload the request to the app running on /tmp/sseapp
; start the sseapp beforehand using
; uwsgi --wsgi-file /srv/okmapgo/dilcher_messaging_kafka/sseapp.py --socket /tmp/sseapp --gevent 1000 --gevent-monkey-patch
;; response-route-if-not = empty:${X_OFFLOAD} uwsgi:/tmp/sseapp,0,0
;response-route-if = equal:${CONTENT_TYPE};text/event-stream log:route triggered
response-route-if = equal:${CONTENT_TYPE};text/event-stream uwsgi:/tmp/sseapp.sock,0,0
注释掉的“response rout if”(响应路由如果)条目起作用,当前活动条目不起作用:-/

引用的套接字确实存在(另一个uwsgi套接字是皇帝的套接字):


我使用的是uWSGI版本2.0.17.1。关于如何实现这一点有什么提示/想法吗?

我认为您需要在配置中添加
router\u uwsgi
插件


这是我的瞎猜,但是你试过添加
router\uwsgi
插件吗?医生说这是必要的。谢谢,这很可能是问题所在:-)但是,我注意到了一个更容易的错误:我在没有首先删除Alpine Linux包的情况下用pip重新编译了uwsgi,然后调用了Alpine版本而不是pip版本。调用Alpine版本加载了正确的插件(包括您提到的插件),路由工作正常。既然你的评论听起来仍然可以解决这个问题,我会接受它作为一个答案,如果你尽快写一个。
[uwsgi]
socket = /tmp/django.sock
chown-socket = nginx:nginx
chmod-socket = 664

; wait until the sse app is loaded
wait-for-socket = /tmp/sseapp.sock

; configuring the sse app
; http-socket = :9090
offload-threads = 2
wsgi-file = /srv/okmapgo/okmapgo/wsgi.py
plugins = python

; collect X-Offload-to-SSE header and store it in var X_OFFLOAD
collect-header = X-Offload-to-SSE X_OFFLOAD
collect-header = Content-Type CONTENT_TYPE
; if X_OFFLOAD is defined, do not send the headers generated by Django
;; response-route-if-not = empty:${X_OFFLOAD} disableheaders:
; if X_OFFLOAD is defined, offload the request to the app running on /tmp/sseapp
; start the sseapp beforehand using
; uwsgi --wsgi-file /srv/okmapgo/dilcher_messaging_kafka/sseapp.py --socket /tmp/sseapp --gevent 1000 --gevent-monkey-patch
;; response-route-if-not = empty:${X_OFFLOAD} uwsgi:/tmp/sseapp,0,0
;response-route-if = equal:${CONTENT_TYPE};text/event-stream log:route triggered
response-route-if = equal:${CONTENT_TYPE};text/event-stream uwsgi:/tmp/sseapp.sock,0,0
ls -lahrt /tmp
total 8
drwxr-xr-x    1 root     root        4.0K Nov 15 10:55 ..
srw-rw-r--    1 nginx    nginx          0 Nov 15 11:21 uwsgi.sock
srw-rw-r--    1 nginx    nginx          0 Nov 15 11:21 sseapp.sock
drwxrwxrwt    1 root     root        4.0K Nov 15 11:21 .