nginx - valid_referes不起作用

时间:2016-07-08 05:49:26

标签: nginx

我有本地服务器在3000端口上运行,它向nginx服务器发送一些POST请求。 Nginx应检查referer,如果它不是来自127.0.0.1:3000(包含所有子域),则返回403 Restricted,否则如果它有效重定向到9200 / errors / browser endpoint。

目前,无论引用者是否有效,它总是重定向。我知道在nginx中如果是邪恶的,那么if-else方法在这里不起作用。

server {
  listen 127.0.0.1:9999;
  server_name localhost;      

  location / {

      valid_referers none blocked server_names ~someaddress;

      if ($invalid_referer) {
          return 403;
      }

      # redirect to this endpoint if referer is valid    
      return 307 http://localhost:9200/errors/browser;    

  }
}

1 个答案:

答案 0 :(得分:-1)

我应该添加

if ($invalid_referer != "1") {
   return 403;
}

因为它是根据documentation

的空字符串
  

$ invalid_referer   空字符串,如果“Referer”请求标头字段值被认为有效,否则为“1”。