回答
收藏
分享
举报
Nginx在windows server中上传文件失败
提问于2021-09-24 16:58

浏览 723

nginx部署在windows server中,做了反向代理。配置如下

#user  nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;
worker_rlimit_nofile 65000;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;
charset UTF-8;

server_names_hash_bucket_size 128;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 120;
# gzip压缩功能设置
# gzip on;

# http_proxy 设置
lingering_timeout 600s;
send_timeout 600s;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
client_header_timeout 60;
client_body_timeout 60;
client_header_buffer_size 1M;
large_client_header_buffers 8 1M;
client_max_body_size 1024M;
client_body_buffer_size 10M;

# proxy header
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;


server {
listen 80;
server_name my.domain.com;

add_header Cache-Control no-cache;


# 首页
location / {
root html/home;
error_page 500 502 503 504 404 403 /error.html;
client_max_body_size 1024m ;

}
}

# 单点
location /sso/ {
proxy_pass http://127.0.0.1:7001/sso/;
}

location /um/ {
proxy_pass http://127.0.0.1:8080/um/;
}

location /pm/ {
proxy_pass http://127.0.0.1:8080/pm/;
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 8 1M;
proxy_busy_buffers_size 2M;
proxy_temp_file_write_size 2M;
proxy_temp_path temp/proxy_temp 1 2;
limit_rate_after 30m;
limit_rate 700k; #这里根据需要设置,意思是视频缓冲30M之后,限速为700k/s
}




error_page 500 502 503 504 404 403 /error.html;
location = /error.html {
# 放错误页面的目录路径。
root html;
client_max_body_size 1024m;
}


}

}

但是在PM应用中上传大于10M的文件时(使用jquery+ajax+java技术栈),总是提示ERR_CONNECTION_RESET失败,查看nginx的access日志中都没有上传文件的请求的记录。

对于小于10M的文件,一切都没问题。

通过wireshark抓包分析,报错如下:

2156 61.473231 10.80.90.216 dstip HTTP 1402 POST /pm/fileupload?type=0 HTTP/1.1

2157 61.473323 10.80.90.216 dstip HTTP 1514 Continuation

2157 61.473323 10.80.90.216 dstip HTTP 1514 Continuation

。。。。。这里是多条Continuation的包信息。。。。
2238 61.559356 10.80.90.216 dstip HTTP 1514 [TCP Window Full] Continuation 2243 61.918391 10.80.90.216 dstip HTTP 55 [TCP ZeroWindowProbe] Continuation

分析是底层TCP的问题,但是不知道如何解决。有遇到过该问题的大神,还往不吝赐教!


已修改于2023-03-15 02:14



写下您的回答
发表回答
全部回答(1)

按点赞数排序

按时间排序

nginx版本试过1.16.1和1.20.1

赞同

0

回复举报

回答于2021-09-24 17:02



回复fy4346
回复
提问者
fy4346
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答