Mox*_*Mox 6 apache ubuntu nginx laravel server
我在 Laravel 代码中有一个空的 API,带有 nginx 和 apache 服务器。现在的问题是,如果我尝试使用不同的文件,API 会花费大量时间,而如果我尝试使用空白数据,API 会快速响应。
情况 1:我使用空白请求调用 API,此时响应时间仅为 228ms。
案例 2:我使用 5MB 文件请求调用 API,然后文件传输花费了太多时间。这就是为什么响应时间会太长,即15.58s。
那么我们如何减少 apache 或 nginx 服务器中的传输启动时间,是否有任何服务器配置或我错过的任何其他事情?
当我在 google 上搜索时,它说保持所有版本最新并使用 php-fpm,但是当我在服务器上配置 php-fpm 和 http2 协议时,我注意到它需要比上面更多的时间。所有服务器版本都是最新的当前版本。
这更多地与以下事实有关:一个request
没有任何需要处理的内容,因此response
会提示,而另一个request
需要实际处理,因此response
只要服务器需要处理您的request
.
根据文件的大小和服务器配置,您可能会达到导致响应的限制timeout
。
您遇到的问题的解决方案是对文件上传进行分块。有一些可用的包,因此您不必自己编写该功能,此类包的一个示例是Pionl Laravel Chunk Upload。
另一种解决方案是将文件处理卸载到Queue。
更新
当我在 google 上搜索有关分块的信息时,这对于 5-10 MB 等小文件来说并不是最佳解决方案。对于 50-100 MB 等大文件来说,这是最佳解决方案。那么是否有任何服务器端分块配置或任何其他东西,或者我可以使用这个库来分块小文件吗?根据图书馆文档,这是一个网络图书馆。如果我的 API 从 Android 和 iOS 应用程序调用,我应该使用什么?
确实,分块可能不是较小文件的最佳解决方案,但值得了解。我的建议是使用一些客户端逻辑来确定是否需要分块发送文件。在服务器上,使用队列在后台处理文件上传,允许请求继续处理,而无需等待上传,并将响应及时发送回客户端(iOS/Android 应用程序)。
归档时间: |
|
查看次数: |
771 次 |
最近记录: |