我有一个在uwsgi + nginx上运行的Flask web服务,它运行良好。
我有另一个服务器上运行的另一个开发版本的服务。 它也运行在uwsgi + nginx上。
我想要做的是,testing开发服务器'真正'的stream量(POST请求)我已经做了validation开发服务器基本上工作良好。 只是想比较两个相同的实际stream量。
我的基本想法如下:
(A)是传统服务器(B)是testing服务器
用户请求
Nginx(A)获取请求并将请求传递给uwsgi(A)进行处理。
Nginx(A)“复制”请求并将其交给Nginx(B)进行testing
uwsgi(A)在Flask App(A)中处理请求并响应用户(通过Nginx(A))
Nginx(B)像传统服务器一样处理请求,但不响应用户(只是日志logging)
这是有道理的吗? 我应该采取什么方法?
我自己find了解决scheme。 所以我在这里分享我的发现。
我用这个post_action指令 。
location / { uwsgi_pass unix:app.sock; post_action @post_action; } location @post_action { proxy_pass http://dst_host:dst_port; }
请求首先传递给unix:app.sock,并在完成时,post_action指令将请求传递给指定位置@post_action。
它就像一个魅力!