【问题标题】:Laravel is so slow on Azure Web App for LinuxLaravel 在 Azure Web App for Linux 上速度太慢了
【发布时间】:2021-06-06 14:27:43
【问题描述】:

我想知道在基于 Linux 的 Azure Web App 上运行 laravel 应用程序的最佳方法是什么。

我尝试在 Linux 和 Windows Azure Web 应用程序中测试相同的应用程序(相同的 azure 应用程序计划、相同的区域和相同的“光纤”连接速度):

Windows 的性能看起来比 Linux 好很多

这是Linux App中的截图:

这是Windows App中的截图:

有人可以帮我找到 Linux 缓慢的根源吗?是 Microsoft Web 应用程序本身的问题吗?

问候。

【问题讨论】:

  • 您使用的是哪个网络服务器?
  • 我使用 apache 服务器
  • 尝试在 Linux 服务器上使用 nginx 应该会有所帮助。可能是在 Linux 上使用了一些包/库,而不是在 Windows 上,这就是差异的原因。

标签: laravel azure azure-web-app-service


【解决方案1】:

我认为 nginx 是性能优化的更好选择。另外请务必遵循 Laravel 部署指南。

在部署到生产环境时,请确保您正在优化 Composer 的类自动加载器映射,以便 Composer 可以快速找到要为给定类加载的正确文件:

composer install --optimize-autoloader --no-dev

将应用程序部署到生产环境时,应确保在部署过程中运行 config:cache Artisan 命令:

php artisan config:cache

如果您正在构建具有许多路由的大型应用程序,则应确保在部署过程中运行 route:cache Artisan 命令:

php artisan route:cache

将应用程序部署到生产环境时,应确保在部署过程中运行 view:cache Artisan 命令:

php artisan view:cache

还缓存不定期更新数据的视图。有一个库叫spatie/laravel-responsecache

https://github.com/spatie/laravel-responsecache

参考:https://laravel.com/docs/8.x/deployment

在ngnx中缓存文件

参考:NGINX cache static files

参考:https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/

【讨论】:

    【解决方案2】:

    请使用以下步骤:-

    1. 运行缓存删除 cmets php artisan config:cache , php artisan route:cache , php artisan view:cache
    2. 在您的图像中,Favicon.ico 不是主宰。解决了这个问题
    3. 缩小所有的js和css

    【讨论】:

      【解决方案3】:

      当部署到内置图像时,您的代码和内容会被分配一个用于 Web 内容的存储卷,由 Azure 存储提供支持。此卷的磁盘延迟比容器文件系统的延迟更高且变化更大。需要对内容文件进行大量只读访问的应用程序可能会受益于自定义容器选项,该选项将文件放置在容器文件系统中而不是内容卷中。

      【讨论】:

        猜你喜欢
        • 2017-02-28
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        • 2016-01-01
        • 1970-01-01
        • 2020-05-16
        • 1970-01-01
        • 2018-03-14
        相关资源
        最近更新 更多