지난 포스팅에서 nginx에서 ip를 기준으로
사용자 접근을 허용, 제한하는 방법에 대해서 알아봤다.
https://babbeolicoding.tistory.com/55
Nginx restrict access by ip 사용자 ip로 제한하기
우선 기본적으로 nginx에서 ip기준으로 서비스를 차단, 허용하는 방법은 allow, deny를 사용하는 것이다. allow ip deny all; -> 이런 경우특정 ip 만 허용되고 나머지 경우는 전부 차단된다. 하지만 lb를 통
babbeolicoding.tistory.com
지난 시간에 포스팅한 내용에서
2번 방법을 사용하면 /etc/nginx/nginx.conf가 아닌
/etc/nginx/conf.d/*.conf 파일들에 각각 if 문을 적용해야 한다.
서비스가 추가될때 마다 해당 if문을 추가하기란 너무 번거롭다.
이런 경우 정책을 관리하는 파일을 만들어
그 파일을 include 시키면 한 곳에서 관리가 가능하다.
나는 이름을 location으로 지어서 사용했다.(이름을 아무렇게나 지어도 상관없다)
적용하는 방법은 location이라는 파일을 만들어
적용할 조건을 세팅한다.
(참고로 location 파일을 포함하는 기본 경로는 /etc/nginx/ 이다)
파일 생성 후 각 /etc/nginx/conf.d/*.conf 파일 안에 include locations; 라는 구문만 추가해주면 된다.
server {
listen 80;
include locations;
server_name example.com;
location /{
proxy_pass https://{upstream+_name};
}
}
추가적으로 nginx에서 if문 안에 if문을 사용하는 방법도 있다.
만약 조건 1,2가 성립하는 경우만 403으로 return을 하고 싶은 경우
아래 방법을 사용하면 된다.
set $test "";
# 조건 1이 성립할때
if ( $http_x_forwarded_for = "test11")
{
set $test "true";
}
# 조건 2가 성립할때
if ( $http_x_forwarded_for !~ 'test22' )
{
set $test "${test}+true";
}
if ($test = "true+true") {
return 403 "deny";
}
'Nginx' 카테고리의 다른 글
nginx header log (custom header 사용) (0) | 2023.12.11 |
---|---|
nginx log 경로 변경 후 오류 (13: Permission denied) while logging request (0) | 2023.07.11 |
Nginx 오류 a duplicate default server for 0.0.0.0:80 (0) | 2023.07.10 |
Nginx restrict access by ip 사용자 ip로 제한하기 (0) | 2023.06.26 |
Nginx resolver 설정(Dynamic DNS resolution) (0) | 2023.06.12 |