NGINX 在位置获取请求的 http 版本
NGINX get http version of request in location
在 nginx 配置中,如果请求的 http 版本不存在或小于 1,我想 return 401。
类似下面的内容:-
location / {
if ($requestHttpVersion = '' OR $requestHttpVersion != 1.1){
return 401;
}
}
我怎样才能做到这一点?
你应该检查一个 $request
built-in nginx 变量,它包含完整的原始请求行,通常类似于 GET <URI> HTTP/<version>
:
if ($request !~ \sHTTP/1\.1$) {
return 401;
}
这行得通,我相信这是更好的解决方案
http{
map $server_protocol $httpVersion {
default "invalid";
HTTP/1.1 "valid";
HTTP/1.0 "valid";
HTTP/2.0 "valid";
}
location / {
if ( $httpVersion = "invalid" )
{
return 401;
}
proxy_pass ....
...
}
}
在 nginx 配置中,如果请求的 http 版本不存在或小于 1,我想 return 401。 类似下面的内容:-
location / {
if ($requestHttpVersion = '' OR $requestHttpVersion != 1.1){
return 401;
}
}
我怎样才能做到这一点?
你应该检查一个 $request
built-in nginx 变量,它包含完整的原始请求行,通常类似于 GET <URI> HTTP/<version>
:
if ($request !~ \sHTTP/1\.1$) {
return 401;
}
这行得通,我相信这是更好的解决方案
http{
map $server_protocol $httpVersion {
default "invalid";
HTTP/1.1 "valid";
HTTP/1.0 "valid";
HTTP/2.0 "valid";
}
location / {
if ( $httpVersion = "invalid" )
{
return 401;
}
proxy_pass ....
...
}
}