Drupal

Drupal 文件系統

  • December 28, 2011

為了嘗試和改進載入時間,我正在考慮為 Drupal 站點中的文件夾創建一個特定的子域。進一步的改進可能是例如在雲上擁有特定的子域……

我對伺服器不是很了解,而且我對 HTTP 請求還有很多了解,但基本假設是,如果資源在伺服器之間拆分,頁面載入速度會更快。

例如,如果我的首頁顯示 image.jpg,則以下內容應該載入得更快

      http://example.com
      http://files.example.com/image.jpg 

比這個

      http://example.com
      http://example.com/image.jpg 

由於我正在使用 Drupal 進行開發,因此我知道我可以在站點配置中更改我的文件路徑。我還沒有嘗試在文件系統路徑欄位中輸入絕對 URL,但我發現此解決方案並不靈活,因為這意味著在我的本地開發站點上具有相同的路徑。

我能想到的唯一解決方案是在我的伺服器上創建一個符號連結,在這種情況下,我想知道它是否會真正達到預期的結果,即上面的範例。

我不確定是否足夠清楚,所以如果您需要進一步澄清,請隨時發表評論。

您所追求的優勢是讓瀏覽器增加並發連接數。為了實現這一點,必須從不同的(子)域提供內容。換句話說,您網頁上指向靜態文件的 URI 必須更改。

瀏覽器不關心文件在伺服器上的位置,只關心它們引用的(子)域。通常,這需要使用 Drupal 模組,該模組會在生成頁面時重寫連結。(即您網頁上的實際連結需要更改 - 而不是幕後的東西 - 符號連結、重定向和反向代理在這裡沒有幫助。)您可能需要查看CDN 模組以獲取類似實現的範例。

在您的網頁上擁有正確的 URL 後,您需要提供來自這些(子)域的內容。由於您特別提到了使用子域,因此典型的過程需要為您的域添加一個(CNAME)DNS 條目,指向子域;在您的網路伺服器(例如 Apache、Nginx、Lighttpd 等)上設置一個虛擬主機,其伺服器名稱與您的子域匹配;並將 Document Root 指向您的靜態文件。這是更改文件路徑可能相關的地方 - 讓 Drupal 將文件上傳到子域的文件根目錄(前提是文件所有權和權限與您的主站點相同) - 或者您可以使用符號連結的想法 - 但您的Web 伺服器需要設置為跟隨符號連結。

值得一提的是,從子域提供內容是有“成本”的。它需要額外的 DNS 查找。有時這種成本超過了並發性的收益,尤其是在您只提供幾個靜態文件的情況下。通過最小化將所有內容呈現在其位置所需的請求數量 - 並限制阻塞腳本,可以實現最佳“感知”性能。除了其他因素,從與您的主站點相同的(子)域提供這些初始資源 - 並從您的“靜態”子域提供其他內容(例如圖像)。

引用自:https://serverfault.com/questions/344575