我正在尝试为我们的cms实施基于时间和地理位置的限制。下面是当前设置的样子
nginx(端口:443):用于ssl终止和url操作
varnish(端口:80):从后端缓存动态内容
apache、php、mysql:定制cms在这个堆栈上运行
该要求是这样的:在某个特定的时间段内,来自特定国家的流量不能访问特定的url/类别,但是来自世界其他地区的流量可以访问相同的url/类别而不受任何限制。
地理位置的部分似乎并不令人望而生畏,但我还没有找到任何限制交通的基础上的时间。
当然,我可以设置两个varnish或nginx配置,一个有限制,一个没有限制,让cron作业在我想做的时候替换物理文件,但是我希望有一个更干净的解决方案。
我知道所有这些都可以用php来处理,但我不能从堆栈中删除varnish,我必须投入5-6个服务器来处理负载,这将增加我无法证明的成本。
救命啊?
1条答案
按热度按时间mbskvtky1#
你可以用
now
在清漆,做一个正则表达式的日期在清漆生产403或任何东西这是一个样本
varnishtest
展示如何使用的案例now
```varnishtest "Time Gate"
server s1 {
rxreq
txresp
} -start
varnish v1 -vcl+backend {
import std;
} -start
client c1 {
txreq -url "/1"
rxresp
expect resp.http.now_string ~ "2018"
} -run