我正在尝试使用uWSGI在NGINX上托管Bottle Application。
这是我的 nginx.conf
location /myapp/ {
include uwsgi_params;
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param Host $http_host;
uwsgi_param UWSGI_SCRIPT myapp;
uwsgi_pass 127.0.0.1:8080;
}
我正在这样运行uwsgi
uwsgi --enable-threads --socket :8080 --plugin python -- wsgi-file ./myApp/myapp.py
我正在使用POST请求。为此,使用dev Http Client。当我发送请求时,哪个无限
http://localhost/myapp
uWSGI服务器接收请求并打印
[pid: 4683|app: 0|req: 1/1] 127.0.0.1 () {50 vars in 806 bytes} [Thu Oct 25 12:29:36 2012] POST /myapp => generated 737 bytes in 11 msecs (HTTP/1.1 404) 2 headers in 87 bytes (1 switches on core 0)
但是在nginx错误日志中
2012/10/25 12:20:16 [error] 4364#0: *11 readv() failed (104: Connection reset by peer) while reading upstream, client: 127.0.0.1, server: localhost, request: "POST /myApp/myapp/ HTTP/1.1", upstream: "uwsgi://127.0.0.1:8080", host: "localhost"
该怎么办?
最佳答案
确保在应用程序中使用您的帖子数据
例如,如果您有Django/python应用程序
def my_view(request):
# ensure to read the post data, even if you don't need it
# without this you get a: failed (104: Connection reset by peer)
data = request.DATA
return HttpResponse("Hello World")
一些细节:https://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html
关于NGINX + uWSGI对等连接重置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13063454/