Laravel间歇性的坏网关502错误和页面失去CSS样式



尝试加载时一些页面我会收到一个糟糕的网关NGNIX 502错误,但是在刷新时,它将解决页面加载。不确定这是否关联了,但是一个页面需要重量的MSSQL查询,并且该页面将加载结果,但是不会继续加载与页面关联的CSS。

master.blade.php文件包含Bootstrap CSS和主题样式,Extention.blade.php将扩展Master(与我项目上的其他多个页面一样(,但是它包含一个DB查询,但是当DD((成功返回时,无法加载CSS。其他页面有时会遇到此问题,多次刷新将纠正页面加载。

希望有人可以帮助我的情况。听起来像是配置问题吗?只是不确定..

update

所有页面首先经历了一个糟糕的网关502,然后刷新了CSS损失(主要是引导程序(。坏网关将在静态页面上的2或3个浏览器刷新之后出现,而与DB查询没有关联。

我的设置:

  • Mac OS X Sierra 10.12.6
  • php 7.1
  • nginx和laravel 5.6

www.conf设置:

  • pm =动态
  • pm.max_children = 10
  • pm.start_servers = 10
  • pm.min_spare_servers = 10
  • pm.max_spare_servers = 10
`fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/Users/myusername/.valet/valet.sock;
fastcgi_index 
/Users/myusername/.composer/vendor/laravel/valet/server.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME 
/Users/myusername/.composer/vendor/laravel/valet/server.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;`

php-fpm.conf设置:

  • 默认为include=/usr/local/etc/php/7.1/php-fpm.d/*.conf

Laravel Storage具有777权限集(仅确定其文件权限问题是否会恢复回755 fyi(

现在解决此问题的关键是提供以下内容的错误日志:

php错误日志:

`[22-Feb-2018 10:29:06 Australia/Sydney] PHP Fatal error:  Uncaught 
PDOException: SQLSTATE[25000]: [FreeTDS][SQL Server]The ROLLBACK 
TRANSACTION request has no corresp$
Stack trace:
0 {main}
  thrown in [no active file] on line 0`

但是,我与此相关的唯一SQL是选择查询,但我不认为这是不良门户的主要原因。

〜/.valet/log/nginx-error.log:

`2018/02/22 10:24:23 [error] 62179#0: *9 upstream prematurely closed 
connection while reading response header from upstream, client: 
127.0.0.1, server: sites.dev-env`

我认为这是主要问题。它发生在不良门户错误的每个点,我被困在试图弄清楚它的含义。这个日志文件有很多这些错误,显然我试图弄清楚什么。正在进行。

我如何通过进行代客重新启动来暂时解决问题。NGINX或PHP的酿造重新启动无法解决问题,因此将其隔离为代客。

我只知道该页面可能不会在首先加载而而是在另一个上加载的一个原因。这是关于Redirect::back()->withInput(Input::all());

在第一个加载上可能会有一些输入,在刷新上 - 不会留下输入。

只是在这里发表评论,因为我遇到了另一种可能导致此的情况。请注意,如果没有推荐人标头信息,则Yevgeniy的答案也正确。

在负载下,我能够识别出一些性能较差的查询特别严重的数据库。这些查询似乎将我们的数据库抬高,并且这样做是导致Web服务器每分钟上下几次上下。似乎php -fpm在不断打开/关闭数据库连接 - 也许是由于负载引起的开放连接停滞的结果。

无论如何 - 作为对此的一般答案,数据库挣扎可能会导致您的网络层锁定并返回502错误。在这种情况下,Laravel不提供您必须有用的信息,但是如果您开始收到类似的间歇性错误,请检查数据库是您想做的。

最新更新