我們在Debian根運行的Magento CE 1.8具有以下配置:Magento的CE 1.8:光油不會吹掃網址
Nginx --> Varnish 3.0 --> Apache
我們已經安裝了「的PageSpeed搭載光油」 -extension(但它不是我們在其他服務器上遇到了同樣的問題)
現在問題: 如果我們更改某些產品,刪除產品或其他東西,Varnish將不會清除這些URL(我認爲是這樣)。 編輯產品時,我得到504網關超時。 如果我重新啓動清漆服務,一切正常 - 但我們無法通過magento後端觸發清除。
所以我檢查檢查deamon_opts我的/ etc /默認/清漆文件:
DAEMON_OPTS="-a :8080 \
-T localhost:6081 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,4G"
這不是默認的清漆的配置,因爲nginx的清漆前使用端口80因此清漆8080和Apache 80再次(只在內部)。
光油管理端口是6081,這也保存在PageSpeed-Extension中。 好吧,讓我們來看看default.vcl(部分):
backend default {
.host = "127.0.0.1";
.port = "80";
}
//我覺得這是好的,讓我們來看看ACL吹掃,使Magento的清洗網址:
acl purge {
"localhost";
"127.0.0.1";
}
//的VCL-東西有些線路//現在發現在清除 「子vcl_recv」:
# purge request
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
ban("obj.http.X-Purge-Host ~ " + req.http.X-Purge-Host + " && obj.http.X-Purge-URL ~ " + req.http.X-Purge-Regex + " && obj.http.Content-Type ~ " + req.http.X-Purge-Content-Type);
error 200 "Purged.";
}
好了,現在問題的詳細信息。自從我查了一些類似「超時」(15秒後)之類的日誌以來,我已經有一段時間了,但是我忘記了我使用了哪種工具。如果我想在Magento後端編輯產品,則會發生此問題。我點擊保存並加載並加載和加載。然後我在我的瀏覽器中得到504 Gateway Time-Out。
varnishlog說(在修改產品的那一刻)
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774882 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774885 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774963 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774966 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1417774969 1.0
14 BackendClose b default
18 BackendOpen b default 127.0.0.1 34992 127.0.0.1 80
這在我看來,Magento的後端不能觸發清洗過程。在日誌(具有超時的日誌)中是應該清除的URL。我認爲在magento和清漆(CLI)之間存在某種連接 - 失敗
如何解決特定問題? 是否有任何工具,命令或技巧? 我不知道是什麼問題。
預先感謝您!
Magento的1.8.1及以上版本默認情況下不與光油緩存兼容。我會推薦使用Redis來代替。同時Nginx - > Varnish 3.0 - > Apache配置似乎有點荒謬。它應該是Varnish 3.0 - > Nginx - >沒有Apache的PHP-FPM。在您的特定情況下,請查看本指南以獲取正確的Varnish 3.0配置文件。 HTTPS://www.ashsmith。io/2012/12 /創建更快的magento-store-part-one-server-setup/ – Cninroh 2014-12-05 11:35:42
你好,Nginx-> varnish - > apache運行良好,沒有理由改變這一點。 我們在運行Magento CE 1.7的另一臺機器上遇到同樣的問題!所以我認爲它沒有Magento問題。 Varnish正在運行,商店超快!Redis是清漆的替代品,它可能是memcached的替代品。我們需要清漆運行。 幾天前,我在你的鏈接中測試了vcl的。大部分文件與我的vcl相似。它是相同的擴展名。 – krebsmann 2014-12-05 11:51:47
nginx和varnish都可以作爲後臺服務的代理。你當前的實現是使用nginx作爲代理。你有沒有爲Nginx指定proxy_pass? http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass – Cninroh 2014-12-05 12:01:49