2017-06-13 70 views
0

我遇到了一个问题,甚至不知道如何开始诊断它。不寻常的间歇性页面加载

我目前的服务器设置如下;

Ubuntu的16.04,阿帕奇2.4,PHP7.0-FPM中,MySQL 5.6和清漆4.

Apache的监听端口443和清漆上的端口监听80.请求到端口443是对的ProxyPass光油端口80上作为(vhost snippet)。

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 

光油则提供静态内容,并在8080端口上

PHP请求由PHP-FPM处理,并设置如下(虚拟主机段)通过一切到Apache。

<FilesMatch ".+\.ph(p[3457]?|t|tml)$"> 
    SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost" 
</FilesMatch> 

出于某种原因,当光油浏览该网站时,用户将产品添加到购物车特别是当服务请求,现在每一次,页面加载会挂起几乎完全60秒继续加载之前。在大多数情况下,它加载非常快。但是当它挂起时,apache,varnish,php-fpm,mysql,包括php-fpm慢速日志和mysql慢速日志都不会显示任何错误。

当禁用Varnish(管道输送所有请求)时,我似乎无法再现错误。

我怎样才能看到什么阻止了请求或过程?

我难以理解接下来要看的地方?

+0

使用'curl'来模拟来自命令行的请求。独立地向管道中的每个点发出请求。使用'time'来计时'curl'请求。在Chrome中使用F12并右键单击网络请求并选择“复制卷曲请求”以获得可粘贴的卷曲请求。我不知道你的意思是“Varnish在端口8080上将所有东西都传递给Apache”。它会将代理请求从代理的端口发送回Apache。数据返回到Apache到443并返回到客户端。 Apache可能会打开任何本地随机端口来开始与端口80上的Varnish进行通信。 – Chloe

+0

想要检查php-fpm日志以及PHP和httpd日志。什么是60秒超时?如果它导致负载,那么apache和'php-fpm-status'页面的'server-status'会很有帮助。 – ficuscr

回答