>  기사  >  운영 및 유지보수  >  Nginx 역방향 프록시의 장치 및 브라우저 지문을 기반으로 한 ACL 구성

Nginx 역방향 프록시의 장치 및 브라우저 지문을 기반으로 한 ACL 구성

PHPz
PHPz원래의
2023-06-10 13:13:401146검색

모바일 인터넷과 다중단말기의 대중화로 인해 웹사이트 접속 방식과 기기 종류가 점점 다양해지고 있습니다. 웹사이트의 안정성과 보안을 보장하기 위해 웹사이트 서버는 역방향 프록시를 수행해야 하며 다양한 장치 및 브라우저 유형을 제한해야 합니다. 이를 위해서는 Nginx 역방향 프록시의 장치 및 브라우저 지문을 기반으로 하는 ACL 구성을 사용해야 합니다. .

Nginx 리버스 프록시란 무엇인가요?

Nginx 리버스 프록시는 서버가 다른 서버 리소스에 액세스하기 위한 클라이언트 역할을 하는 프록시 방법입니다. 간단히 말하면 클라이언트와 서버 사이에 프록시 서버가 추가되고, 클라이언트는 프록시 서버에 리소스를 요청하고, 프록시 서버는 실제 서버에 리소스를 요청한 후 요청 결과를 클라이언트에 반환합니다. 이 방법은 서버에 대한 부담을 효과적으로 줄이고 웹사이트의 성능과 안정성을 향상시킬 수 있습니다.

Nginx 역방향 프록시의 ACL 구성

ACL(Access Control List, Access Control List)은 Nginx 역방향 프록시의 기능으로, Nginx 역방향 프록시에서 요청한 IP 주소, 요청 방법, URL 및 기타 조건을 기반으로 작업을 수행하는 데 사용됩니다. 클라이언트를 필터링하고 제한합니다. ACL에서는 장치 유형 및 브라우저 유형에 따라 제한할 수도 있습니다.

다양한 장치와 브라우저 유형의 렌더링 방법과 사양이 다르기 때문에 당사는 이러한 특성에 따라 다양한 페이지 구조, 스타일 또는 리소스를 제공하는 등 다양한 대응을 할 수 있습니다. 동시에 ACL 구성을 통해 특정 장치나 브라우저의 요청을 제한하여 웹사이트의 보안과 안정성을 향상시킬 수도 있습니다.

기기 및 브라우저 지문을 기반으로 한 ACL 구성

현재 기기와 브라우저의 종류가 너무 많아서 하나씩 수동으로 구성하는 것은 확실히 비현실적입니다. 그러나 다행스럽게도 Nginx 역방향 프록시는 장치 및 브라우저 유형을 자동으로 식별할 수 있는 타사 모듈 deviceatlas를 제공합니다.

deviceatlas 모듈 설치

CentOS를 예로 들어 먼저 필요한 종속성을 설치합니다.

sudo yum install gcc-c++ pcre-devel zlib-devel

그런 다음 deviceatlas 모듈을 다운로드하고 압축을 풀고 설치를 실행합니다.

sudo wget -O ~/deviceatlas.tar.gz https://github.com/deviceDetection/device-nginx/archive/master.tar.gz
sudo tar zxvf ~/deviceatlas.tar.gz -C ~/
cd ~ /device-nginx -master
sudo ./configure --add-module=$PWD
sudo make && sudo make install

위 단계 후에 Nginx에서 deviceatlas 모듈을 사용할 수 있습니다.

Nginx 역방향 프록시 구성

Nginx 구성 파일에 다음 구성을 추가합니다.

http {

deviceatlas /usr/share/devicedata/51Degrees.dat;

map $device_is_mobile $acl {
    ""               block_ua;
    "true"           allow;
    "false"          block_ua;
}

map $device_brand_name $brand_map {
     "~Huawei"       "huawei.com";
     "~Samsung"      "samsung.com";
     "~Apple"        "apple.com";
     default         "default.com"
}

server {
    listen       80;
    server_name  server.com;

    location / {
        if ($acl = "allow") {
            proxy_pass http://backend;
        }
        if ($acl = "block_ua") {
            return 403;
        }
    }

    location /brand {
        proxy_pass http://$brand_map;
    }
}

}

위 구성을 구문 분석합니다.

먼저 deviceatlas 모듈을 사용하여 장치 정보 파일을 로드합니다.

장치는 "모바일"과 "비모바일"로 분류됩니다. 장치가 분류된 후에는 다양한 장치 유형에 따라 쉽게 다른 응답을 할 수 있습니다. 장치 브랜드 이름은 해당 백엔드 서버 도메인 이름에 매핑됩니다.

Nginx 역방향 프록시 서버에서 위치 지시문을 사용하여 현재 요청이 모바일 장치에서 오는 경우 프록시 요청입니다. 현재 요청이 알 수 없는 장치에서 오는 경우 허용됩니다. 모바일 장치의 경우 프록시 요청이 허용되지 않습니다.

지정된 URL을 요청할 때 요청이 모바일 장치에서 나오고 브랜드가 Huawei, Samsung 또는 Apple의 경우 요청은 해당 서버로 프록시됩니다. 그렇지 않은 경우 요청이 알 수 없는 장치 또는 비-모바일 장치 또는 브랜드가 항목과 일치하지 않는 경우 요청은 기본 서버로 프록시됩니다.

요약

장치 및 브라우저 지문을 기반으로 한 ACL 구성은 Nginx 역방향 프록시 서버가 다양한 액세스 장치 및 다양한 액세스 방법을 필터링하고 응답하는 데 도움이 될 수 있습니다. Nginx 리버스 프록시 서버는 deviceatlas 모듈을 사용하여 장치 브랜드, 모델 및 브라우저 유형을 자동으로 식별하고 특정 조건에 따라 해당 ACL 구성을 만들어 웹 사이트의 성능, 보안 및 안정성을 향상시킬 수 있습니다.

위 내용은 Nginx 역방향 프록시의 장치 및 브라우저 지문을 기반으로 한 ACL 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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