我有本地服务器在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;
}
}
答案 0 :(得分:-1)
我应该添加
if ($invalid_referer != "1") {
return 403;
}
因为它是根据documentation
的空字符串$ invalid_referer 空字符串,如果“Referer”请求标头字段值被认为有效,否则为“1”。