【问题标题】:Dynamically update Apache config "allow from IP" without a restart/reload?无需重新启动/重新加载即可动态更新 Apache 配置“允许来自 IP”?
【发布时间】:2011-01-13 05:02:53
【问题描述】:

我的目标是只允许登录用户的 IP 访问 Apache 2.2 转发代理,同时拒绝所有其他 IP。

在代理虚拟主机中,我成功包含了一个“允许来自”文件,每次用户登录或退出站点时都会动态重写该文件(添加登录用户的 IP,同时删除登录用户的 IP -out 用户)。但是,这需要 Apache 的正常重启/重新加载才能生效,如果可以的话,我希望提高性能......因为当用户登录并被传输到主页时,有时 Apache 就在重新启动中间并发出“忙碌”警告。

我想我可以将 Apache 的正常重启延迟一两秒,以减轻初始登录的压力,但如果有办法完全避免重启,我会非常感激知道它.谢谢!

【问题讨论】:

    标签: apache restart


    【解决方案1】:

    但是,这需要一个优雅的 重新启动/重新加载 Apache 以采取 效果,

    请不要这样做。这不是解决方案。

    使用来自 Apache 的 mod_rewrite (RewriteModule) 的 RewriteMap 指令来实现基于动态文件的 IP 黑名单/白名单。

    ## WHITELIST IPS ##
    RewriteMap ipslist txt:/path/to/whitelist.txt
    RewriteCond %{REMOTE_ADDR} ^(.*)$
    RewriteCond ${ipslist:%1|black} ^black$ [NC]
    RewriteRule (.*) - [F]
    

    【讨论】:

    • +1 有效地在文件的 mtime 更改时刷新 rewriteMap 缓存。
    • +1 很好的答案,但我可以用数据库替换 whitelist.txt。 @Sarwar Erfan
    • @Nidal,是的。只需将 txt: 更改为 dbm: 或httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritemap中列出的任何其他类型
    猜你喜欢
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2014-08-08
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多