>운영 및 유지보수 >엔진스 >Nginx 역방향 프록시의 URI 기반 ACL 구성

Nginx 역방향 프록시의 URI 기반 ACL 구성

王林
王林원래의
2023-06-10 10:42:16830검색

Nginx는 많은 수의 동시 요청을 쉽게 처리할 수 있는 오픈 소스 고성능 웹 서버 및 역방향 프록시 서버입니다. Nginx는 다양한 기능 모듈을 통합하며 그 중 ACL(Access Control List)이 중요한 구성 방법입니다. ACL을 사용하면 관리자는 Nginx 서버에 액세스할 수 있는 사용자 또는 IP 주소를 제어할 수 있으므로 웹 서버의 보안과 안정성이 향상됩니다. 이 기사에서는 Nginx 역방향 프록시에서 ACL 구성을 사용하여 URI를 기반으로 액세스 권한을 제어하는 ​​방법을 소개합니다.

  1. ACL이란 무엇인가요?

ACL, 전체 이름 액세스 제어 목록, 중국어 이름 액세스 제어 목록은 액세스 권한을 제어하는 ​​기술적 수단입니다. 특정 사용자나 IP 주소에 대한 액세스를 허용하거나 거부하여 악의적인 공격으로부터 웹 서버를 보호합니다.

Nginx에서 ACL을 구현하는 방법에는 두 가지가 있습니다. 하나는 IP 주소 기반 ACL이고 다른 하나는 URI 기반 ACL입니다. 이 문서에서는 URI 기반 ACL에 중점을 둘 것입니다.

  1. URI 기반 ACL 구성

URI 기반 ACL은 액세스 권한을 제어하는 ​​비교적 일반적이고 유연한 수단입니다. 요청된 URI를 필터링하여 카테고리별로 사용자 액세스 권한을 제어할 수 있습니다.

아래에서 구체적인 예를 살펴보겠습니다. 웹 애플리케이션에 두 개의 모듈이 있다고 가정합니다. 하나는 백그라운드 관리 모듈이고 다른 하나는 프런트엔드 사용자 모듈입니다. 이 두 모듈의 액세스 URI는 서로 다릅니다.

우리는 역방향 프록시 모듈과 함께 Nginx의 ACL 기능을 사용하여 이 두 모듈에 대한 액세스 제어를 달성할 수 있습니다. 먼저 Nginx 구성 파일에 다음 ACL 규칙을 추가해야 합니다.

location / {

proxy_pass http://backend;
allow 192.168.1.0/24; # 允许192.168.1.0/24网段的访问
deny all; # 拒绝其他所有IP地址的访问

}

location /admin {

proxy_pass http://backend;
allow 192.168.1.10; # 允许指定IP地址的访问
deny all; # 拒绝其他所有IP地址的访问

}

위 구성에서는 각각 모든 URI 및 /admin을 대상으로 합니다. URI는 다양한 ACL 규칙을 설정합니다. 모든 URI에 대해 192.168.1.0/24 네트워크 세그먼트의 IP 주소에만 액세스할 수 있도록 허용합니다. /admin URI의 경우 지정된 IP 주소에만 액세스할 수 있도록 허용하고 다른 IP 주소는 거부됩니다.

ACL 규칙의 순서는 매우 중요합니다. Nginx는 먼저 가장 긴 URI와 일치하고, 일치에 성공하면 해당 URI에 해당하는 ACL 규칙이 사용됩니다. URI가 여러 ACL 규칙과 일치하는 경우 첫 번째로 일치하는 ACL 규칙이 사용됩니다.

  1. 정규식 기반 ACL 구성

Nginx는 URI 기반 ACL 구성 외에도 정규식 기반 ACL 구성도 지원합니다. 이 방법은 더 유연하며 다양한 요구에 따라 맞춤화할 수 있습니다.

아래 예를 살펴보겠습니다. /api로 시작하는 모든 URI에 대한 액세스를 제어해야 한다고 가정하면 다음 ACL 구성을 사용할 수 있습니다.

location ~ ^/api/(.*)$ {

proxy_pass http://backend;
allow 192.168.1.0/24; # 允许192.168.1.0/24网段的访问
deny all; # 拒绝其他所有IP地址的访问

}

위 구성에서는 다음을 사용합니다. 정규식은 /api로 시작하는 모든 URI와 일치하며 해당 ACL 규칙이 설정됩니다.

ACL 구성에 정규식을 사용하면 성능 오버헤드가 발생할 수 있다는 점에 유의해야 합니다. 따라서 가능하면 URI 기반 ACL 구성을 사용하는 것이 좋습니다.

  1. 요약

ACL은 Nginx 역방향 프록시에서 액세스 권한을 제어하는 ​​매우 중요한 수단입니다. URI 기반 ACL 구성은 다양한 URI에 대해 다양한 액세스 권한을 설정할 수 있습니다. 정규식을 기반으로 한 ACL 구성은 더욱 유연하며 다양한 요구 사항에 따라 사용자 정의할 수 있습니다. 다양한 애플리케이션 시나리오의 경우 다양한 ACL 구성 방법을 선택할 수 있습니다. 동시에 성능을 향상시키기 위해 ACL 구성에 복잡한 정규식을 사용하지 않도록 노력해야 합니다.

위 내용은 Nginx 역방향 프록시의 URI 기반 ACL 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.