nginx IF语句

41 篇文章 0 订阅

使用nginx cache也有很长一段时间了,原来没有想到用nginx cache会有那么多问题存在,还是在实际运用中才发现如下问题的。

首先是要禁止IP访问。我这里直接给它返回403

if ($host ~ "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}") {return 403;}

这个是为了监控需要才加上的。

if ($http_user_agent ~* "monitor") {break;}

这个是当用户直接访问域名下某个文件时候,那就直接退出

if ($request_uri !~* \/$ ){
break;
}

下面这些是由于这个网站是多语言网站,当用户语言是中文的时候就返回www.timoseven.com,但是当用户是手动选择其它语言的时候就不作判断

当用户访问的不是www.timoseven.com的时候就退出,防止出现循环错误。

if ($host !~* www.timoseven.com) {
break;
}

当用户的referer是timoseven.com的时候就退出,这个为了用户手动选择语言的时候不作判断

if ($http_referer ~ timoseven.com){
break;
}

当用户浏览器语言是法语的时候就转到french.timoseven.com等等。这里的$http_accept_language就是可以获取用户的浏览器语言,当然还可以$http_accept_encoding等等,只要是用户请求头部分的都是可以用$http_开头的进行获取并进行匹配。

if ($http_accept_language ~* fr) {
rewrite ^/(.*) http://french.timoseven.com redirect;
break;
}
if ($http_accept_language ~* de) {
rewrite ^/(.*) http://german.timoseven.com redirect;
break;
}
if ($http_accept_language !~* zh) {
rewrite ^/(.*) http://english.timoseven.com redirect;
break;
}

这个是为了有时候需要用到purge进行推送的使用的方法,具体推送的可以参考之前的文章。

if ($request_method = PURGE) {rewrite ^(.*)$ /purge$1$is_args$args;}

###########################################

Best regards
Timo Seven
blog:http://www.timoseven.com/
twitter: http://twitter.com/zauc
Linux System Admin & MySQL DBA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值