nginx根据访问的url参数或者是请求 头部做判断转发
2018-08-17 14:59
826 查看
在http请求后端时,token是一种非常常见的使用方式,但是如果url请求参数不带token,或者请求头部不带token这样的请求应当直接返回401,而不要代理给后端服务器做处理了。可以有效降低后台服务器的负载。
location /api/ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Content-Type, x-csrf-token, X-Access-Token, Accept';
add_header 'Access-Control-Allow-Methods' 'GET,HEAD,PUT,POST,DELETE,PATCH';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
if ($arg_token = '') {
#return 401;
set $token para;
}
if ($http_token = '') {
#return 401;
set $token "${token}header";
}
if ($token = paraheader){
return 401;
}
proxy_pass http://127.0.0.1:8080/app/; proxy_redirect off;
}
简要说明if ($arg_token = '')表参数中没有名为token的参数, if ($http_token = '')表示没有token这个请求头。
特别注意if is evil,nginx不提供多if判断,没有or这样的判断,所以只能用上文这种方式。
location /api/ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Content-Type, x-csrf-token, X-Access-Token, Accept';
add_header 'Access-Control-Allow-Methods' 'GET,HEAD,PUT,POST,DELETE,PATCH';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
if ($arg_token = '') {
#return 401;
set $token para;
}
if ($http_token = '') {
#return 401;
set $token "${token}header";
}
if ($token = paraheader){
return 401;
}
proxy_pass http://127.0.0.1:8080/app/; proxy_redirect off;
}
简要说明if ($arg_token = '')表参数中没有名为token的参数, if ($http_token = '')表示没有token这个请求头。
特别注意if is evil,nginx不提供多if判断,没有or这样的判断,所以只能用上文这种方式。
相关文章推荐
- Nginx 根据URL带的参数转发
- Spring MVC Controller 的同一个 URL 请求,根据逻辑判断返回 JSON 或者 HTML 视图
- 如何让 Spring MVC Controller 的同一个 URL 请求,根据逻辑判断返回 JSON 或者 HTML 视图?
- Nginx 根据URL带的参数转发
- 如何让 Spring MVC Controller 的同一个 URL 请求,根据逻辑判断返回 JSON 或者 HTML 视图?
- Nginx 根据URL带的参数转发
- Nginx 根据URL带的参数转发
- 【Nginx】下载,请求限速,根据URL参数限速
- Nginx 根据URL带的参数转发
- 【Nginx】下载,请求限流限速,根据URL参数限速
- Nginx 根据URL带的参数转发
- Nginx 根据URL带的参数转发
- Nginx 根据URL带的参数转发
- Nginx 根据URL带的参数转发
- Nginx 根据URL带的参数转发
- Nginx 根据URL带的参数转发
- SimpleUrlHandlerMapping 根据定义转发请求,map from URLs to request handler beans
- CentOS 6.9安装Nginx,根据地址转发请求
- 自己试验在spring的环绕通知里获取目标对象的类名和目标方法的参数类名,用于根据自定义注解判断访问权限,有没有更好的办法,高手指点一下
- tomcat中解析url中的参数或者post中的请求内容