nginx에서 HTTP 호스트당 단일 IP의 액세스를 제한하는 방법은 무엇입니까?

nginx에서 HTTP 호스트당 단일 IP의 액세스를 제한하는 방법은 무엇입니까?

각각 자체 호스트가 있는 여러 웹사이트가 있는 서버가 있습니다.

특정 웹 사이트(특정 호스트/도메인 이름)에 대해 0.0.0.0/0특정 IP 에 대한 액세스를 차단하고 허용하는 방법이 nginx에 있습니까 ?1.2.3.4/32

예를 들어:

  • HTTP 요청이 호스트 헤더와 함께 제공되면 www.something-public.com모두 허용합니다.
  • HTTP 요청이 호스트 헤더와 함께 제공되면 www.something-private.com모두 거부하고 특정 IP 주소를 허용합니다.

.htaccess내가 가진 또 다른 문제는 웹 사이트 소유자를 신뢰할 수 없으며 웹 사이트 디렉터리의 구성 파일(예: 상위 디렉터리 설정을 재정의하는 파일)을 통해 웹 사이트 소유자를 변경하는 것을 허용하지 않음으로써 이 규칙을 통해 소유자를 제한하고 싶다는 것입니다.

답변1

모듈ngx_http_access_module서버 블록에 넣을 수 있는 허용 및 거부 명령이 있습니다.

server {
  server_name www.something-public.com;
  allow all; // I think this is the default and the statement is not needed
}

server {
  server_name www.something-private.com;
  allow 192.168.1.1/32;
  deny  all;
}

관련 정보