我想分享我最近遇到的一个问题的解决方案,这个问题花了我痛苦的四天时间才解决。希望这篇文章能让其他人免于头痛。
问题:
我使用Nginx背后的Node.js作为反向代理。在提供图像文件时,我经常遇到一个问题,即在出现“Error:aborted”消息之前,图像只提供了部分服务,连接过早终止。这导致部分加载的图像显示在客户端。以下是图像显示方式的示例:
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,所以我与社区分享这一点,希望能让您的旅程更顺利,并保存您这给我带来的痛苦。
1条答案
按热度按时间1u4esq0p1#
原因:
尽管最初的测试指向Node.js问题,但经过广泛的故障排除,我发现根本原因与Nginx的默认代理超时和缓冲设置有关。这些设置将每个请求分为大约100,000字节的块,导致不完整的图像交付。
解决方案:
我最终通过调整Nginx配置中的缓冲区和超时设置解决了这个问题。下面是我更改的具体设置及其值:
字符串
通过调整这些设置,可以在不中断的情况下为完整的请求提供服务,从而将完整的映像正确发送到客户端。
的数据
我希望这些信息可以帮助那些在Nginx反向代理后使用Node.js时可能面临部分内容交付问题的人。当我搜索答案时,我无法在这里或其他论坛上找到任何明确的答案,包括使用ChatGPT,所以我与社区分享这一点,希望能让您的旅程更顺利,并保存您这给我带来的痛苦。