-1

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

用户登录 wordpress 时保存 cookie 很简单(setcookie()根据this使用功能),因此实现我的目标的最佳方法似乎是根据 cookie 过滤用户。

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

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

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

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

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

4

1 回答 1

0

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

<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/

于 2019-04-14T00:10:16.010 回答