server 80
다음을 포함하는 return
지시문 이 있습니다 allow/deny
.
...
server {
server_name dev.monitor.domain.ms;
listen 80;
allow 194.***.45;
allow 37.***.130;
deny all;
return 301 https://dev.monitor.domain.ms$request_uri;
}
...
.server
listen 443
따라서 여기서 질문은 return 301
액세스가 허용되지 않는 IP에 대해서도 여기서 작동하는 이유는 무엇입니까?
마지막으로 - 실제로 연결할 수 없어서 allow/deny
작동하지만...
예:
$ curl -vL dev.monitor.domain.ms * About to connect() to dev.monitor.domain.ms port 80 (#0) ... < HTTP/1.1 301 Moved Permanently ... < Location: https://dev.monitor.domain.ms/ ... * Issue another request to this URL: 'https://dev.monitor.domain.ms/' * About to connect() to dev.monitor.domain.ms port 443 (#1) * Trying 40.***.***.237... Connection timed out * couldn't connect to host * Closing connection #1 curl: (7) couldn't connect to host
allow/deny
블록 에 추가해도 마찬가지입니다 http {}
. 그렇다면 언제, 어디서 이러한 제한을 확인해야 할까요?
ngx_http_access_module문서에는 이에 대해 아무 것도 언급되어 있지 않습니다.
답변1
deny
Nginx의 모든 해당 위치에 적용됩니다.
위치를 정의하지 않았으므로 적용되지 않습니다.
리디렉션을 다음 위치에 넣어보세요.
location / {
return 301 https://dev.monitor.domain.ms$request_uri;
}
그러나 이는 지정된 호스트에 대한 보안을 제공하지 않습니다.
여전히 HTTPS 호스트 내에서 권한을 확인해야 합니다.