【问题标题】:How to limit file download bandwidth based on cookies如何根据 cookie 限制文件下载带宽
【发布时间】:2019-04-14 08:10:16
【问题描述】:

我想在我的 wordpress 网站中创建高级会员计划,例如黄金用户可以无限制地下载文件,但普通用户必须以最高 200KB/s 的速度下载文件。

用户登录wordpress时保存cookie很简单(根据this使用setcookie()函数),所以实现我的目标的最好方法是根据cookie过滤用户。

我搜索并找到了mod_qos apache 模块,它可以限制带宽并有一个Privileged Users 选项,但我不知道如何使用它来排除高级用户的限制。提供的文档不够详细。

还有其他模块,如 mod_cbandmod_ratelimit 等,但它们都不能根据 cookie 过滤用户(或者至少我想不出办法)

其他解决方法是根据 IP 过滤用户并使用 tciptables 来限制带宽(就像它为开放 vpn here 所做的那样)。但这似乎很困难,因为您必须为每个用户登录执行shell命令并将用户IP添加到高带宽组。

注意:我有两台单独的服务器,一台是带有 cpanel 的 web 主机,我的 wordpress 网站在其上运行,另一台是我托管文件的 vps。

请原谅我的英语或用词不好,这是我在 stackoverflow 中的第一个问题。提前致谢。

【问题讨论】:

    标签: apache cookies apache-modules trafficshaping


    【解决方案1】:

    经过更多研究,我自己找到了解决方案:

    <IfModule mod_qos.c>
    SetEnvIf        Cookie  "foo=bar"    IsVIP
    QS_EventKBytesPerSecLimit !IsVIP 200
    </IfModule>
    

    第一行检查是否存在名为“foo”且值为“bar”的cookie,如果存在则切换环境变量“IsVIP”。 如果“IsVIP”未设置为 true,则第二行应用下载速度限制。

    来源:

    https://sourceforge.net/p/mod-qos/discussion/697421/thread/82a85ab2

    https://serverfault.com/questions/541458/how-do-you-use-apache-setenvif-with-cookie-values

    http://mod-qos.sourceforge.net/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多