iT邦幫忙

0

如何在Apache中區隔出不同程式可以使用的系統資源量

目前使用Windows 作為 apache的環境,讓使用者透過 ftp的方式上傳各自的php程式。有什麼方式可以對不同的使用者上傳的程式進行流量與CPU資源的管控。因為目前使用者上傳的程式會影響到主要頁面的運作了,請問該如何解決。

1 個回答

44
fillano
iT邦超人 1 級 ‧ 2008-06-26 13:42:36
最佳解答

很少人有這樣的需求,我也沒做過。但是剛剛查了一下apache httpd的手冊,真的有限制cpu, memory, number of process的設定,而且可以by directory做設定!所以你的需求應該可以做得到。

第一步是把userdir的AllowOverride設定為none,要不然user可以利用.htaccess檔來覆蓋你的設定。然後在userdir設定RLimitCPU、RLimitMEM、RLimitNPROC的數值,格式是default|max。詳細請參考一下apache httpd的線上手冊(這是2.2版的,其他版本的請另外找),然後自己測試一下。

假設使用者目錄集中在C:\Users,那可以用:

<pre class="c" name="code">
<Directory C:/Users>
    AllowOverride None
    RLimitMem 4000|8000
    RLimitCPU 1|2
    RLimitNPROC 2|4
</Directory>

這樣的設定方式
(我沒用過,所以實際上要怎樣設定,效果如何,可能要你自己試一下)

另外如果想限制同時連線,還可以用mod_limitpconn。參考網址:
http://dominia.org/djao/limitipconn2.html
我以前做的測試:http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=11105&blogId=257
但是他不能by directory做設定。(也許可以嘗試改一下source code,說不定不必改很多)

我要發表回答

立即登入回答