Linux Apache 设置 Perl CGI 脚本限制
通常,Perl 和/或 CGI 脚本会失控并消耗所有系统资源:这是很危险的事情,可以通过三个指令来控制。Apache 附带三个指令来限制服务器可以使用的 CPU、内存和进程的数量。i
) RLimitCPU – 限制 CPU 使用率。
例如:RLimitCPU 10 20
ii) RLimitNPROC – 限制同时运行的进程数。
例如:RLimitMEM 200000 200000
iii) RLimitMEM – 限制服务器上运行的进程使用的内存。
示例 RLimitNPROC 3 5
您可以在 vhost 或主服务器配置中使用上述三个指令。上述每个示例的第一个值是软(最小)限制,第二个值是硬(最大)限制,任何进程都不能超过该限制。以下是在大规模托管服务器中使用的更实用和现实的示例(打开您的 httpd.conf 文件并添加以下三个指令):
A) 设置进程使用的最大 CPU 时间为 100 秒,这样如果 Perl 进程持续运行超过 100 秒,就会终止,即 Perl 脚本的运行时间不得超过 100 秒。运行时间超过 100 秒的脚本将被系统/Apache 自动停止。RLimitCPU
100 100
B)设置一次最多 25 个进程
RLimitNPROC 25 25
C)允许每个进程使用 10 MB
RLimitMEM 10000000 10000000
添加到 httpd.conf 文件后,重新启动 apache 进程。请注意,您必须进行实验,看看根据您的设置可以将这些值设置得多低。您还可以使用 ulimit 来获取和设置用户限制。在 Debian GNU/Linux 下,www-data 是设置这些限制的正确用户。阅读 ulimit 和 pam 配置的 man/help 页面以获取更多信息。请参阅官方apache 网站了解 Rlimit 指令。
(查看我们关于Perl的所有帖子)