Linux
通過使用額外的靜態文件伺服器來提高性能
我計劃在生成的頁面中包含許多靜態資產(js、css、圖像和縮略圖)的大型網站。該網站將
TYPO3
用作 CMS(這是客戶要求)。我想我可以通過使用兩個伺服器設置來嚴重提高性能/頁面載入時間。執行主應用程序 (PHP) 的一台伺服器和另一台執行靜態文件的伺服器由精簡版本的 apache 或類似 lighthttpd 的東西提供服務。
包括來自文件伺服器的例如 js 或 css 文件當然沒什麼大不了的。只需使用絕對網址即可
http://static.example.com/js/main.js
。但是:那個網站會有很多頁面,上面有很多產品圖片的縮略圖。因此,當主應用程序嘗試創建某些圖像的縮略圖時,我看到了兩個問題:
- 像這樣的原始圖像
products/some.jpg
上傳到靜態文件伺服器上,因此與嘗試創建縮略圖的 PHP 應用程序不在同一伺服器上。- TYPO3 將創建的縮略圖寫入預期位於同一伺服器上的臨時目錄。因此,數百個縮略圖將從與主應用程序位於同一伺服器上的臨時目錄中寫入和提供 -> 在這種情況下,靜態文件伺服器基本上是無用的,所有縮略圖都將從主應用程序的伺服器請求。
所以,我的問題是:如何克服這個缺點?
是否可以將某些目錄“符號連結”到另一台伺服器?
因此,例如,如果 PHP 嘗試打開原始產品圖像以創建縮略圖,
imagecreate("products/some.jpg")
而產品文件夾實際上“指向”靜態圖像伺服器上的產品文件夾?我知道可以做這樣的事情,.htaccess
但它可以在文件系統級別上嗎?
Varnish Cache非常適合這個!
(來源:mocsystems.com)
你可能會覺得這篇文章很有趣。
我想說的第一件事就是從
mod_expires
減少靜態文件請求開始,然後可能會增加mod_deflate
較低的頻寬。只有當您真正看到嚴重的負載時,才開始分區到單獨的伺服器。
將靜態請求移動到同一 apache 上的不同虛擬伺服器(可能使用相同的文件根目錄)應該是分區的良好第一步。