我正在使用Docker在AWS Elastic Beanstalk中运行节点服务器,它也使用nginx。我的一个端点负责图像处理,如调整大小等。
我的日志显示了很多ESOCKETTIMEDOUT
错误,表明它可能是由无效的网址引起的。
情况并非如此,因为它处理这种情况是相当基本的,当我打开明显无效的网址时,它会很好地加载图像。
到目前为止,我的研究使我做出了以下改变:
虽然1有助于改善响应时间,但我没有看到任何改进2.我现在在服务器日志中遇到以下警告:
an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/0/12/1234567890 while reading upstream,
。
这让我觉得ESOCKETTIMEDOUT
错误可能是由于超出了proxy_buffer_size。但是,我不确定,在我继续根据预感做出改变之前,我想对此有一些看法。
所以我有两个问题:
我遇到了this有用的文章,但想要更多的意见,如果这对我的情况有帮助的话。
答案 0 :(得分:0)
当超出proxy_buffer_size
时,它会创建一个临时文件,用作" swap",它会使用您的存储空间,如果是可计费的,您的费用会增加。当您增加proxy_buffer_size
值时,您将使用更多RAM,这意味着您将需要支付更大的RAM,或者尝试使用当前的运气。
有两件事你不应该让用户等待处理:电子邮件和图片。它可能导致超时甚至整个应用程序不可用。您可以随时使用更大的超时时间,甚至是更强大的实例,但是当它扩展时,您将遇到问题。
我建议您采用不同的方法:制作图像占位符响应并异步处理这些图像。当它们作为版本化的已调整大小的图像可用时,您可以正常提供它们。对于使用lambda来说,有AWS article这样的事情。