Evg*_*niy 14 performance .htaccess httpd.conf apache-2.2
通常有两种在 Apache 上处理东西的可能性:
使用htaccess文件对文件夹进行一一配置
完全放弃htaccess并将所有规则放入httpd.conf
htaccess 的使用是一个加载时间问题。我想知道,htaccess 的使用在加载时间方面有多昂贵?有任何测试吗?
HBr*_*ijn 22
Apache 项目的建议是:
通常,当您无权访问主服务器配置文件时,您应该只使用 .htaccess 文件。...一个常见的误解是用户身份验证和 mod_rewrite 指令必须放在
.htaccess文件中。
因此,请AllowOverride None在主 httpd.conf(和/或您的小节Include)中设置和所有其他指令
当Apache是没有配置与AllowOverride None您已发生(未成年人)的性能损失,无论羯羊或没有任何.htaccess正在使用的文件。
这是因为对于每个请求, apache 都需要检查.htaccess每个(子)目录中是否存在通向所请求资源的潜在文件。例如,当从目录 /www/htdocs/example 中请求文件时,apache 必须查找以下文件:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Run Code Online (Sandbox Code Playgroud)
因此,对于该目录外的每个文件访问,还有 4 个额外的文件系统访问,即使这些文件都不存在。(如果 AllowOveride 设置为 /)
用于该 ( man 2 stat)的系统调用本身并不昂贵,并且通常使用文件系统缓存而不是轮询实际磁盘,从而限制了实际 IO 要求,但它仍然可以累加,正如本文所讨论的那样。
当一个或多个实际.htaccess文件实际存在时,apache 仍然需要open读取它(触发另一个 IO 读取操作,通常也是一个IO 写入操作来更新文件系统atime属性)并在应用其中的逻辑之前解析它。
不像当你的指令在 main 中时httpd.conf,它只需要 apache 解析它们一次,在启动时,每个.htaccess文件都需要为每个请求再次解释。
除了 IO 操作之外,解析 .htaccess 文件的成本取决于它们的复杂性。
这将需要仔细的基准测试来确定。
| 归档时间: |
|
| 查看次数: |
3257 次 |
| 最近记录: |