簡體   English   中英

Apache,PHP緩存

[英]Apache, PHP caching

A使用Curl和PHP設置內部代理類。 設置如下:

代理服務器是一個相當便宜的VPS(有時有慢速磁盤i / o)。 對此服務器的所有請求都由單個index.php腳本處理。 index.php從另一個快速服務器獲取數據並顯示給用戶。

兩台服務器之間的數據傳輸速度非常快,瓶頸只是代理服務器上的磁盤i / o。 由於只有一個index.php - 我想知道

1)如何確保index.php在代理服務器上的Apache中被永久“限制”? (谷歌搜索php緩存,我發現許多自定義解決方案將緩存php的“數據”輸出我想知道是否有任何預構建模塊在apache中將緩存php腳本本身?)。

2)數據是從代理服務器上的RAM /緩存中始終從后端服務器獲取的嗎? (假設有足夠的內存)

3)apache在處理請求時是否從磁盤讀取任何配置文件或其他文件?

4)在提供內容之前,apache是​​否等待將日志寫入磁盤 - 如果是這樣,我將禁用代理服務器上的日志記錄(或者是否有辦法確保首先提供內容而無需等待日志寫入)。

基本上,我想在'代理'服務器上一起消除磁盤i / o。

謝謝,

J.P

1)安裝APC( http://pecl.php.net/apc ),這將編譯您的PHP腳本一次,並將其保存在共享內存中,用於Web服務器進程(或給定的TTL)的生命周期。

2)如果你的腳本獲取數據並且沒有將它緩存/存儲在文件系統上,它將在RAM中,是的。 但僅限於請求的持續時間。 PHP使用“無共享”策略,這意味着在請求之后釋放所有內存。 如果您確實在文件系統上緩存數據,請考慮使用memcached( http://memcached.org/ )來繞過文件i / o。

3)如果您激活了.htaccess支持,Apache將搜索通往您的php文件的每個路徑中的那些。 請參閱為什么我不能在Apache中禁用.htaccess? 了解更多信息。

4)不是100%肯定,但它可能會等待。

為什么不使用像這種類型的任務明確構建的Varnish之類的東西並不帶來Apache的開銷?

對於這種puprose,我會推薦“tinyproxy”。 你想要的一切都非常有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM