网站每隔一段时间随机加载缓慢
Website randomly loads slowly every once in a while
我有一个 laravel 网站,它在 apache2 上 运行 并且在多个服务器上 运行 用于多个客户端。只有一台 Web 服务器,网站加载缓慢。现在它不会在每次页面加载时加载缓慢,而是随机加载缓慢。此外,在加载一个页面后,该页面加载速度很快,如果您离开网站 5 分钟并开始导航到另一个页面,该页面再次加载缓慢。
不确定实际上是否是 apache 导致了网站运行缓慢,或者它是否是第三方插件,因为在加载页面时它提到 m.stripe.com 正在加载,然后在另一个页面加载时,它可能是另一个插件加载。
有没有我可以用来破解这个问题的工具。
很难回答为什么 Laravel 网站速度较慢。 Laravel 应用程序变慢的原因有很多。您必须在应用程序中需要改进的地方进行调试并做出决定。这是我在开发应用程序时关注的列表。
Database
如何在每个页面上加载数据库查询?您必须确保不存在任何递归查询。做高效的数据缓存。检查查询需要一点时间来执行。
Network Connection
如果您的 Redis、数据库、队列使用不同的网络连接,请确保这些连接得到很好的优化,并花一些时间来连接和提供数据。
Cache Files
缓存你 blade HTML 文件、路由器、配置文件,并优化这些缓存。另外,尽量减少autoloads服务。
Optimize your Images
优化您的图像。我建议不要使用本地文件。尝试使用云服务。
Minify CSS and JS file
您应该缩小 CSS 和 js 文件。并尝试使用来自 CDN 的库。
Use Queue
尽可能使用队列,例如电子邮件发送、PDF 生成...
发现有2个A name记录了同一个域的不同IP地址。我原以为 apache 会因此而引发一些错误,但它随机选择了 ip 来为站点提供服务,当然,对于不存在的 ip,加载时间很长。
- 缩小 您的 HTML、CSS 和 Javascript。这是增加页面传播的好方法。根据您使用的 IDE,您可以安装一个 minifier 扩展,使用 webpack 来捆绑您的代码,或者使用像 https://fixcode.org/minify
这样的在线 minifier
- 使用 CDN 加载脚本、图像和样式等静态文件 sheet。你也可以通过 CDN
加载你所有的网站
- 您还可以考虑延迟加载脚本的某些部分。特别是在你使用 webpack
编译脚本的情况下
我有一个 laravel 网站,它在 apache2 上 运行 并且在多个服务器上 运行 用于多个客户端。只有一台 Web 服务器,网站加载缓慢。现在它不会在每次页面加载时加载缓慢,而是随机加载缓慢。此外,在加载一个页面后,该页面加载速度很快,如果您离开网站 5 分钟并开始导航到另一个页面,该页面再次加载缓慢。
不确定实际上是否是 apache 导致了网站运行缓慢,或者它是否是第三方插件,因为在加载页面时它提到 m.stripe.com 正在加载,然后在另一个页面加载时,它可能是另一个插件加载。
有没有我可以用来破解这个问题的工具。
很难回答为什么 Laravel 网站速度较慢。 Laravel 应用程序变慢的原因有很多。您必须在应用程序中需要改进的地方进行调试并做出决定。这是我在开发应用程序时关注的列表。
Database
如何在每个页面上加载数据库查询?您必须确保不存在任何递归查询。做高效的数据缓存。检查查询需要一点时间来执行。
Network Connection
如果您的 Redis、数据库、队列使用不同的网络连接,请确保这些连接得到很好的优化,并花一些时间来连接和提供数据。
Cache Files
缓存你 blade HTML 文件、路由器、配置文件,并优化这些缓存。另外,尽量减少autoloads服务。
Optimize your Images
优化您的图像。我建议不要使用本地文件。尝试使用云服务。
Minify CSS and JS file
您应该缩小 CSS 和 js 文件。并尝试使用来自 CDN 的库。
Use Queue
尽可能使用队列,例如电子邮件发送、PDF 生成...
发现有2个A name记录了同一个域的不同IP地址。我原以为 apache 会因此而引发一些错误,但它随机选择了 ip 来为站点提供服务,当然,对于不存在的 ip,加载时间很长。
- 缩小 您的 HTML、CSS 和 Javascript。这是增加页面传播的好方法。根据您使用的 IDE,您可以安装一个 minifier 扩展,使用 webpack 来捆绑您的代码,或者使用像 https://fixcode.org/minify 这样的在线 minifier
- 使用 CDN 加载脚本、图像和样式等静态文件 sheet。你也可以通过 CDN 加载你所有的网站
- 您还可以考虑延迟加载脚本的某些部分。特别是在你使用 webpack 编译脚本的情况下