Heim  >  Artikel  >  Betrieb und Instandhaltung  >  ACL-Konfiguration basierend auf dem Geräte- und Browser-Fingerabdruck im Nginx-Reverse-Proxy

ACL-Konfiguration basierend auf dem Geräte- und Browser-Fingerabdruck im Nginx-Reverse-Proxy

PHPz
PHPzOriginal
2023-06-10 13:13:401145Durchsuche

Mit der Popularität des mobilen Internets und von Geräten mit mehreren Endgeräten werden die Zugriffsmethoden und Gerätetypen auf Websites immer vielfältiger. Um die Stabilität und Sicherheit der Website zu gewährleisten, muss der Website-Server einen Reverse-Proxy ausführen und außerdem verschiedene Geräte und Browsertypen einschränken. Dies erfordert die Verwendung einer ACL-Konfiguration basierend auf Geräte- und Browser-Fingerabdrücken im Nginx-Reverse-Proxy .

Was ist ein Nginx-Reverse-Proxy?

Nginx Reverse Proxy ist eine Proxy-Methode, bei der der Server als Client fungiert, um auf andere Serverressourcen zuzugreifen. Vereinfacht ausgedrückt wird zwischen dem Client und dem Server ein Proxyserver hinzugefügt. Der Client fordert Ressourcen vom Proxyserver an, und der Proxyserver fordert Ressourcen vom realen Server an und gibt dann die Anforderungsergebnisse an den Client zurück. Diese Methode kann den Druck auf den Server effektiv reduzieren und die Leistung und Zuverlässigkeit der Website verbessern.

ACL-Konfiguration im Nginx-Reverse-Proxy

ACL (Zugriffskontrollliste, Zugriffskontrollliste) ist eine Funktion im Nginx-Reverse-Proxy, die zum Ausführen von Vorgängen basierend auf der IP-Adresse, der Anforderungsmethode, der URL und anderen von der angeforderten Bedingungen verwendet wird Client. Filtern und einschränken. In ACL können wir auch basierend auf Gerätetyp und Browsertyp einschränken.

Aufgrund der unterschiedlichen Rendering-Methoden und Spezifikationen verschiedener Geräte und Browsertypen können wir basierend auf diesen Merkmalen unterschiedliche Antworten geben, wie z. B. die Bereitstellung unterschiedlicher Seitenstrukturen, Stile oder Ressourcen. Gleichzeitig können Sie über die ACL-Konfiguration auch Anfragen von bestimmten Geräten oder Browsern einschränken, um die Sicherheit und Stabilität der Website zu verbessern.

ACL-Konfiguration basierend auf Geräte- und Browser-Fingerabdrücken

Es gibt mittlerweile so viele Arten von Geräten und Browsern, dass es offensichtlich unrealistisch ist, sie einzeln manuell zu konfigurieren. Aber glücklicherweise bietet der Nginx-Reverse-Proxy einen Geräteatlas eines Drittanbietermoduls, mit dem wir den Geräte- und Browsertyp automatisch identifizieren können.

Installieren Sie das Deviceatlas-Modul

Nehmen Sie CentOS als Beispiel, installieren Sie zuerst die notwendigen Abhängigkeiten:

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

Laden Sie dann das Deviceatlas-Modul herunter, entpacken Sie es und führen Sie die Installation aus:

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

Nach den obigen Schritten können wir das Deviceatlas-Modul in Nginx verwenden.

Nginx-Reverse-Proxy konfigurieren

Fügen Sie in der Nginx-Konfigurationsdatei die folgende Konfiguration hinzu:

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;
    }
}

}

Parsen Sie die obige Konfiguration:

Verwenden Sie zuerst das Deviceatlas-Modul, um die Geräteinformationsdatei zu laden;

Verwenden Sie den Kartenbefehl, um Geräte als „mobil“ und „nicht mobil“ zu klassifizieren. Nachdem die Geräte klassifiziert wurden, können wir je nach Gerätetyp problemlos unterschiedliche Reaktionen vornehmen Befehl: Der Markenname des Geräts wird dem Domänennamen des entsprechenden Back-End-Servers zugeordnet.

Verwenden Sie auf dem Nginx-Reverse-Proxy-Server die Standortanweisung, um die Anforderungs-URL abzugleichen ist zulässig; wenn die aktuelle Anfrage von einem unbekannten Gerät kommt oder nicht. Bei mobilen Geräten sind Proxy-Anfragen nicht zulässig.

Bei der Anfrage einer bestimmten URL kommt die Anfrage von einem mobilen Gerät und die Marke ist Huawei, Samsung oder Wenn das Mobilgerät oder die Marke mit keinem der Elemente übereinstimmt, wird die Anfrage an den Standardserver weitergeleitet.

Zusammenfassung

Die ACL-Konfiguration basierend auf Geräte- und Browser-Fingerabdrücken kann dem Nginx-Reverse-Proxy-Server dabei helfen, verschiedene Zugriffsgeräte und verschiedene Zugriffsmethoden zu filtern und darauf zu reagieren. Der Nginx-Reverse-Proxy-Server kann mithilfe des Deviceatlas-Moduls automatisch die Gerätemarke, das Modell und den Browsertyp identifizieren und entsprechende ACL-Konfigurationen basierend auf bestimmten Bedingungen vornehmen, wodurch die Leistung, Sicherheit und Stabilität der Website verbessert wird.

Das obige ist der detaillierte Inhalt vonACL-Konfiguration basierend auf dem Geräte- und Browser-Fingerabdruck im Nginx-Reverse-Proxy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn