uwsgi-http hr_instance_read(): Connection reset by peer

2022-08-11 17:17:57 +08:00
 vegetableChick

服务是 nginx + uwsgi + Django 搭建的

有一个上传图片的接口, 通过multipart/form-data 上传到后端服务器 文件大小超过一定大小(大概是 3M 多)就会报错

[uwsgi-http key: host client_addr: addr client_port: 27198] hr_instance_read(): Connection reset by peer [plugins/http/http.c line 647]

以下是一些相关的配置:

uwsgi config

[uwsgi]
pythonpath=/path/to/pythonpath
chdir=/path/to/chdir
env=DJANGO_SETTINGS_MODULE=conf.settings
module=moudle.wsgi
master=True
pidfile=logs/pidfile.pid
vacuum=True
max-requests=1000
enable-threads=true
processes = 4
threads=8
reload-on-rss=2048
listen=1024
daemonize=logs/wsgi.log
http=0.0.0.0:16020
buffer-size=32000
socket-timeout=1500
harakiri=1500
http-timeout=1500
nginx config

nginx.conf

worker_processes  12;

events {
    use epoll;
    worker_connections  65535;
}


http {
    include       mime.types;
    include       log_format.conf;
    include       upstream.conf;
    default_type  application/octet-stream;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  1800;
    server_tokens off;

    client_max_body_size 100m;
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 5;
    gzip_types text/plain application/json application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary off;
    include "site-enabled/*.conf";
}

log_format.conf

log_format upstream '$remote_addr - $host [$time_local] "$request" '
                    '$status $body_bytes_sent $request_time $upstream_response_time '
                    '"$http_user_agent" "$http_x_forwarded_for" ';

upstream.conf


upstream my_service {
        server host:16020  weight=50;
        server host:16020  weight=50;
        keepalive 100;
}

site-enabled/my_service.conf

server {
    listen 7020;
    server_name  my-service.xxx.cn;
    client_max_body_size 100M;
    access_log  logs/my_service_access.log  upstream;
    root /path/to/my_service/dist;

    location ^~ /api/base_api {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_read_timeout 90;
        proxy_pass http://my_service;
    }

    location / {
        try_files $uri /index.html =404;
    }
}

调用上传 api 后 uwsgi响应

[pid: 32248|app: 0|req: 302/351] xxxx () {60 vars in 1502 bytes} [Thu Aug 11 17:14:06 2022] POST /api/ka/user_open/tt_upload_br => generated 26 bytes in 34 msecs (HTTP/1.0 400) 5 headers in 160 bytes (1 switches on core 2)


[uwsgi-http key: host client_addr: addr client_port: 27198] hr_instance_read(): Connection reset by peer [plugins/http/http.c line 647]

nginx响应

xxx - host [11/Aug/2022:17:14:07 +0800] "POST /api/ka/user_open/tt_upload_br HTTP/1.1" 400 26 0.983 0.543, 0.407 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" "43.129.163.247" 

是哪里限制了上传文件的大小呢, 请大家帮忙看一下?

请大家帮忙看一下, 谢谢了!

1784 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX