【发布时间】:2019-03-30 18:01:23
【问题描述】:
在 Amazon EC2 上部署我的 website 后,我遇到了页面加载时间问题,处理请求的时间过长。
我很确定这是 Laravel 框架的问题,因为我在 bootstrap.start.php 的开头放了一个调试行:
<?php
die();
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
然后它将运行得非常快,这意味着 Apache 或负载均衡器没有问题...
但如果我将调试行放在return $app; 之前:
require $framework.'/Illuminate/Foundation/start.php';
die();
那么服务器处理并退出脚本并将结果返回给浏览器的时间太长。
即使没有数据库连接,页面也很慢,只通过控制器,然后返回一个几乎静态的视图。
然后我再次尝试运行此命令:
php artisan optimized
甚至尝试过:
php artisan clear-compiled
php artisan optimized
然后网站在前几个请求中加载速度非常快,但过了一会儿,它又回到了慢速模式。
我真的不知道如何解决这个问题,因为我应用的调整至少可以工作,但很长一段时间都没有工作。
我使用的版本是 Laravel 4.2。
【问题讨论】:
-
我怀疑您的应用程序中的某些内容会在每次请求时加载,例如
app/Services。不太可能是 Laravel 本身。 -
@ceejayoz 然后它必须在本地很慢(相同的服务,再加上一些),但事实并非如此。然后经过工匠优化后,它仍然很快。
-
不一定 - 如果您的服务在每次浏览量上都进行 HTTP 调用,如果它们调用现在无法访问的 URL,它们可能需要很长时间才能超时,这可能会导致你所说的那种行为。
-
我设置网络阻止出站请求,同样的事情发生了
-
@ceejayoz 为您指明了正确的方向。没有人会为您调试整个应用程序 - 尝试进行细微的更改。通读你的日志,看看你是否抛出任何错误。如果您有具体问题,人们将能够在这里提供实际帮助。
标签: laravel amazon-ec2