2016-07-04 4 views
1

나는 총 Nginx 초보자 다. 나는 약간의 도움이 필요하다. =]Nginx - 하나를 제외하고 모든 IP를 차단하는 방법

"IP, 다음 IP"형식의 쉼표로 구분 된 IP가 포함 된 "$ proxy_add_x_forwarded_for"내에 포함 된 IP 목록이 있습니다.

MY IP가이 쉼표로 구분 된 목록에없는 경우 403 오류 코드를 반환하고 싶습니다. 나이 난 아무것도 얻을 수없는이 시도 데 $의 proxy_add_x_forwarded_for 나의 IP 리턴 (403)

포함되지 않은 경우 :

는 나는 문이 말을하면 간단한 작업을 수행하는 것입니다 할 수있는 가장 쉬운 방법을 생각 누구든지 나를 도울 수 있습니까? 이것이 정말 쉬워야하는 것 같습니다.

편집 : 또한 Nginx를 사용하는 다른 구성이 있기 때문에 위치 블록 내에 설정하려고합니다. IP 제한은이 특정 블록에만 유효합니다.

답변

1

당신의 IP 주소가 하면 다음과 같은 문 (403)를 반환합니다, 당신의 IP 주소가 123.123.123.123이라고 가정하지 현재 :

if ($proxy_add_x_forwarded_for !~ \b123\.123\.123\.123\b) { return 403; } 

그것은 (숫자 포함) 단어 경계를 적용 할 \b 메타 문자를 사용 그래서 전체 IP 주소가 테스트됩니다.

범위를 축소해야하는 경우 위치 블록 내에 표현식을 배치 할 수 있습니다.

if의 지시문은 documented here입니다. if 지시어 사용에 대해서는 this caution을 참조하십시오. 정규식에 유용한 리소스는 here입니다.

관련 문제