1

我在 RewriteMap 指令中使用 perl 脚本文件作为映射文件。当我在开始阅读 apache 时加载脚本一次,那么在对该脚本文件进行任何更改后是否需要重新加载或重新启动 apache?

4

2 回答 2

2

是的,重写映射仅在 Apache 启动时注册。当使用外部程序作为重写映射(即映射类型pgr)时,程序文件需要被锁定RewriteLock

该指令设置 mod_rewrite 需要与RewriteMap 程序通信的同步锁文件的文件名。当您想使用重写映射程序时,将此锁定文件设置为本地路径(而不是安装在 NFS 的设备上)。其他类型的重写映射不需要它。

但之后可以更改其他地图类型:

对于纯文本和 DBM 格式文件,查找的键被缓存在内核中,直到映射文件的mtime更改或服务器重新启动。这样,您可以在用于每个请求的规则中拥有映射功能。这没问题,因为外部查找只发生一次!

于 2010-10-24T12:19:57.413 回答
1

我不确定上面的响应是否正确,重新加载似乎没问题。

您可以执行“ps aux | grep YOUR_REWRITE_PROGRAM”来检查重写映射程序的 PID/开始时间。

Apache 重新加载似乎为这些进程设置了一个新的 PID/启动时间,所​​以我假设新进程已经启动,重新加载可能没问题。

于 2012-03-26T15:16:39.647 回答