我遇到了一个问题,甚至不知道如何开始诊断它。
我当前的服务器设置如下;
Ubuntu 16.04、Apache 2.4、PHP7.0-FPM、Mysql 5.6 和 Varnish 4。
Apache 监听端口 443,Varnish 监听端口 80。对端口 443 的请求是 ProxyPass 到端口 80 上的 Varnish,如下所示(vhost 片段)。
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:80/
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set Ssl-Offloaded 1
Varnish 然后提供静态内容并将其他所有内容通过端口 8080 传递给 Apache。
PHP 请求由 php-fpm 处理,设置如下(vhost 片段)。
<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost"
</FilesMatch>
出于某种原因,当 Varnish 处理请求时,在浏览网站时,尤其是在将产品添加到购物车时,页面加载将暂停几乎完美的 60 秒,然后继续加载。在大多数情况下,它的加载速度非常快。但是当它挂起时,apache、varnish、php-fpm、mysql,包括 php-fpm 慢日志和 mysql 慢日志不会显示任何错误。
当 Varnish 被禁用(管道所有请求)时,我似乎无法重现该错误。
我如何查看是什么阻碍了请求或进程?
我很困惑下一步该去哪里看?