尝试加载时的某些页面我收到Bad Gateway Ngnix 502错误,但是在页面刷新时它会解析页面加载。不确定这是否相关,但是一个页面需要大量的mssql查询,页面将加载结果,但不会继续加载与页面关联的CSS。
master.blade.php文件包含bootstrap css和主题样式,extention.blade.php将扩展master(与我项目中的其他多个页面一样)但是它包含一个DB查询,当dd()时成功返回无法加载CSS。其他页面有时会出现此问题,多次刷新将更正页面加载。
希望有人可以帮助我的情况。听起来像配置问题?只是不确定..
更新
所有页面首先经历Bad Gateway 502,然后刷新CSS(主要是bootstrap)。糟糕的网关将在静态页面上刷新2或3次后与数据库查询无关联。
我的设置:
www.conf setup:
〜/ .valet / Nginx / Sites.dev-env(代码停放的我的项目目录)有以下几行(由我自己添加以尝试解决此问题):
`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是选择查询,但我不相信这是Bad Gateway的主要原因。
〜/ .valet /数/ 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`
我认为这是主要问题。它发生在Bad Gateway错误的每一个点上,我一直试图找出它究竟意味着什么。这个日志文件有很多这些错误显然我试图找出什么。正在进行。
我如何暂时解决问题是通过重启代客。 Brew重新启动nginx或php并没有解决问题,因此将其隔离为代客。
答案 0 :(得分:0)
我知道只有一个原因导致页面可能无法在第一个位置加载,而是在另一个位置加载。大概是Redirect::back()->withInput(Input::all());
在第一次加载时,刷新时可能会有一些输入 - 没有输入。
答案 1 :(得分:0)
仅在这里评论,因为我遇到了可能导致这种情况的另一种情况。请注意,如果没有引荐来源标头信息,Yevgeniy的答案也将导致502错误。
在负载下,我能够确定该数据库受到某些性能不佳的查询的打击特别严重。这些查询似乎正在使我们的数据库保持正常运行,并且这样做导致Web服务器每分钟上下运行几次。似乎PHP-FPM一直在不断打开/关闭数据库连接-可能是由于负载导致打开的连接停滞所致。
无论如何-作为对此的一般回答,数据库问题可能会导致您的Web层锁定并返回502错误。在这种情况下,Laravel不会为您提供有用的信息,但是如果您开始收到这样的间歇性错误,则可能需要检查数据库。