네트워크 발전의 급속한 발전에 따라 배포되는 애플리케이션과 서비스의 수가 증가하고 있습니다. 일부 시나리오에서는 요청을 특정 서버나 애플리케이션으로 라우팅해야 합니다. Nginx는 이러한 문제를 해결할 수 있는 고성능 웹 서버이자 일반적으로 사용되는 역방향 프록시 방식입니다. Nginx 리버스 프록시에서 제공하는 ACL 모듈을 기반으로 관리자는 요청 라우팅, 액세스 제어 및 기타 네트워크 보안 문제를 유연하게 제어하고 관리할 수 있습니다.
역방향 프록시에서는 클라이언트에서 역방향 프록시 서버로 요청이 전송되고, 프록시 서버는 클라이언트를 대신하여 백엔드 서버에 요청을 보내고 반환 결과를 클라이언트에 제공합니다. 예를 들어, 여러 언어와 기술 스택이 포함된 최신 웹 애플리케이션에서 Nginx 역방향 프록시를 사용하면 동일한 도메인 이름을 통해 다양한 요청을 다양한 백엔드 서비스로 라우팅할 수 있습니다.
이 기사에서는 Nginx 역방향 프록시에 대한 보다 세부적인 라우팅 정책 및 보안 제어를 구현하기 위해 키워드 및 블랙리스트 기반 ACL을 구성하는 방법을 알아봅니다.
키워드 ACL은 요청 URL의 키워드를 일치시켜 요청 라우팅을 구현하는 방법입니다. 예를 들어, 현재 애플리케이션에서 요청된 URL에 "/app1/"이 포함되어 있으면 Nginx 역방향 프록시가 요청을 백엔드 애플리케이션 1로 라우팅하도록 합니다. URL에 "/app2/"가 포함되어 있으면 요청이 백엔드 애플리케이션 2로 라우팅됩니다.
이 기능을 구현하려면 Nginx 구성 파일에서 키워드 ACL을 구성해야 합니다. 구성 방법은 다음과 같습니다.
http { ... # 关键词acl map $request_uri $app_name { ~* "/app1/" app1; ~* "/app2/" app2; default ""; } }
이 구성에서 $request_uri는 요청된 URL을 나타내는 Nginx 내장 변수입니다. 이 변수의 값은 미리 정의된 키워드 정규식과 일치하는 map 지시문에 전달됩니다. 일치에 성공하면 애플리케이션 이름이 $app_name 변수에 저장되고, 그렇지 않으면 기본값이 사용됩니다.
그런 다음 위에서 정의한 $app_name 변수를 프록시 지시문의 프록시 URL 옵션에 프록시 대상으로 전달할 수 있습니다.
server { ... location / { ... # 配置关键词代理 proxy_pass http://$app_name.backend.com; } }
이 구성에서 키워드 ACL은 요청된 URL 이름에서 요청된 애플리케이션과 일치하며, 프록시 지시문을 통해 클라이언트의 요청을 해당 백엔드 애플리케이션으로 라우팅합니다.
블랙리스트 ACL은 특정 IP 또는 요청된 URL의 액세스를 차단하는 데 사용되는 방법입니다. 이 접근 방식은 일부 상황에서 매우 유용합니다. 예를 들어 악의적인 공격이 발생하는 경우 관리자는 Nginx 리버스 프록시에서 블랙리스트 ACL을 구성하여 IP 주소 그룹에 대한 액세스를 거부할 수 있습니다. 블랙리스트 ACL을 사용하여 특정 일반적인 공격 URL을 거부할 수도 있습니다.
블랙리스트 기반 ACL을 구성하는 방법은 다음과 같습니다.
http { ... # 黑名单acl geo $blocked_ip { default 0; include /path/to/blacklists/ip.txt; } }
이 구성에서 geo 지시문은 차단된 IP 주소 목록을 저장하는 데 사용되는 $blocked_ip라는 메모리 변수를 정의합니다. 이 예에서는 외부 IP 주소 블랙리스트 파일이 사용됩니다. 파일 형식은 다음과 같습니다.
10.2.1.10 1; 192.168.0.0/24 1; 202.102.85.154 1;
파일의 각 줄에는 CIDR 형식의 IP 주소 또는 네트워크 세그먼트가 포함되어 있으며 그 뒤에는 이 IP 주소 또는 CIDR 네트워크 세그먼트가 차단되었음을 나타내는 숫자 1이 표시됩니다.
다음으로 Nginx 구성에서 이 블랙리스트 ACL을 사용할 수 있습니다.
server { ... location / { ... # 配置黑名单ACL if ($blocked_ip) { return 403; } proxy_pass http://backend.com; } }
이 구성에서는 if 지시문을 사용하여 요청된 IP 주소가 블랙리스트에 있는지 확인합니다. 그렇다면 403 액세스 금지 응답이 직접 반환됩니다. . 그렇지 않으면 요청이 백엔드 프록시 서버로 라우팅됩니다.
요약하자면, Nginx 리버스 프록시는 매우 유연한 요청 라우팅 및 액세스 제어를 달성하기 위해 다른 기능 모듈과 함께 사용할 수 있는 우수한 ACL 모듈을 제공합니다. 역방향 프록시를 사용할 때 이러한 방법을 이해하고 익히면 다양한 상황에 더 잘 적응하고 네트워크 서비스의 품질과 보안을 향상시킬 수 있습니다.
위 내용은 Nginx 리버스 프록시의 키워드 및 블랙리스트를 기반으로 한 ACL 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!