我有一个节点服务器作为反向代理运行在nginx上,它应该处理图像上传。它的ssl证书和域是通过cloudflare配置的。
除了将proxy_pass设置为将443个请求传递给本地主机上的节点之外,我没有更改默认配置。我在http块底部设置的更显着的nginx指令是:
# Disabled nginx testing for overweight requests - handled in node
client_max_body_size 0;
# Request and response buffering disabled - to try and be able to reject overweight requests in node ASAP
proxy_request_buffering off;
proxy_buffering off;
# Enabled to avoid buffering http 1.1 chunked if sent
proxy_http_version 1.1;
# Disabled writing responses to a file
proxy_max_temp_file_size 0;
无论使用哪个客户端--postman/失眠症/axios-当通过http发送以4MB映像作为属性之一的表单数据请求时,请求在大约100 is (即great.However )之后到达第一个节点中间件,当通过https发送相同请求时,到达第一个节点中间件大约需要4秒。4秒大约是发送整个请求(文件)所需的时间。
当将GET请求发送到返回200 OK响应的简单端点时,http和https调用所需的解析时间相似--在100 as内-- http稍为faster.That,这使我相信,发送表单数据请求时所观察到的巨大开销是由nginx接收到的https请求没有立即传递到节点服务器造成的。
当我启用nginx client_max_body_size指令并将其设置为256 K时。同样的问题也出现了-- http调用被拒绝,在经过合理的~100 is之后,来自nginx的413响应被拒绝,而https请求需要大约4秒才能收到413次拒绝。
我已经测试了一系列不同的指令配置,但没有显著影响https的上传速度。在这一点上,我的想法快用完了,我很想知道是什么原因造成的,以及解决方案是什么。干杯!
发布于 2022-10-18 14:11:27
https://serverfault.com/questions/1113356
复制相似问题