2017-06-13 27 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

回答