Node.js在Nginx反向代理后解决部分图像服务

7d7tgy0s  于 5个月前  发布在  Nginx
关注(0)|答案(1)|浏览(48)

我想分享我最近遇到的一个问题的解决方案,这个问题花了我痛苦的四天时间才解决。希望这篇文章能让其他人免于头痛。

问题:

我使用Nginx背后的Node.js作为反向代理。在提供图像文件时,我经常遇到一个问题,即在出现“Error:aborted”消息之前,图像只提供了部分服务,连接过早终止。这导致部分加载的图像显示在客户端。
以下是图像显示方式的示例:

1u4esq0p

1u4esq0p1#

原因:

尽管最初的测试指向Node.js问题,但经过广泛的故障排除,我发现根本原因与Nginx的默认代理超时和缓冲设置有关。这些设置将每个请求分为大约100,000字节的块,导致不完整的图像交付。

解决方案:

我最终通过调整Nginx配置中的缓冲区和超时设置解决了这个问题。下面是我更改的具体设置及其值:

proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;

字符串
通过调整这些设置,可以在不中断的情况下为完整的请求提供服务,从而将完整的映像正确发送到客户端。


的数据
我希望这些信息可以帮助那些在Nginx反向代理后使用Node.js时可能面临部分内容交付问题的人。当我搜索答案时,我无法在这里或其他论坛上找到任何明确的答案,包括使用ChatGPT,所以我与社区分享这一点,希望能让您的旅程更顺利,并保存您这给我带来的痛苦。

相关问题