2011-10-18 82 views
1

如果Apache因任何原因關閉了頁面,我有一個要求。 我想到的方式是讓頁面「緩存」,以便它始終可用。只有在apache關閉的情況下才能獲取緩存頁 - PHP

不過我有2個問題: - 我希望頁面始終可用(可能是我可以緩存限制設置爲一個非常大的數字) - 當我做的頁面緩存,瀏覽器總是檢索緩存即使apache已啓動。

所以,任何人都可以建議我應該在這裏做什麼?可能有比我使用的更好的選擇嗎?

這是我使用的參考代碼:

<?php 
session_cache_limiter('public'); 
$cache_limiter = session_cache_limiter(); 

session_cache_expire(60); 
$cache_expire = session_cache_expire(); 

session_start(); 

echo "hello world 2222"; 
?> 

在此先感謝 約翰

+4

設置緩存的請求......你怎麼來服務服務器關閉時緩存的頁面給用戶? – JJJ

+0

你使用前端/後端方案嗎?正如Juhana所說,如果你沒有工作服務器,你甚至不能提供緩存內容 – user973254

+0

我認爲這個想法存在一個主要缺陷(如果我的建議是可行的),那就是瀏覽器必須訪問過這個站點至少要在本地緩存頁面一次。除此之外,也許「緩存頁面」可能是一個iframe,以避免在實際頁面上設置如此高的緩存?我只是想要考慮OP有多接近。我並不確信這是一個實際的想法。 – Anthony

回答

1

我不知道如何做到這一點的工作。如果apache發生故障,該默認頁面將如何提供服務?客戶端將如何定向到Web根目錄?誰在告訴客戶該默認頁面的位置?

我對「頁面被緩存」的想法非常感興趣。在離開Apache之後,你有沒有取得任何成功?它是否需要瀏覽器訪問頁面一次以緩存頁面?

這是對我們的想法的一個奇怪的補充。如何緩存一些JavaScript到頁面中。 JavaScript嘗試進行ajax調用。如果不成功,它會假定apache已關閉,然後將用戶重定向到另一個服務器的網頁,或者重新編寫整個頁面,並記住「服務器已關閉」頁面。

不確定這是值得的資源,但它是一個有趣的想法。

0

你不能使用緩存來做到這一點。

爲了處理請求並檢測網絡服務器的不可用性,您需要一些能夠處理http請求,然後在Apache不可用時替換內容...即第二個網絡服務器。如果你有第二臺網絡服務器,爲什麼不平衡它們呢?

+0

感謝您的回覆 –

0

感謝所有爲你的答案

我設法通過設置包含「DC」參數附加到AJAX調用一個cookie來做到這一點。

而整個頁面使用ajax。

所以我做在頁面的開始假性請求,如果我沒有迴應,我從「DC」參數中的cookie

相關問題