Implementierung der Graustufenversion mit Nginx und Lua

Implementierung der Graustufenversion mit Nginx und Lua

Installieren Sie memcached

yum install -y memcached
#Starten Sie den Memcached-Dienst, Port 11211, starten Sie als Niemand, -d Hintergrundmodus zum Ausführen von Memcached -p11211 -u Niemand -d
#Legen Sie Ihre eigene IP als Graustufen-Test-IP fest
Telnet 127.0.0.1 11211
Satz 119.32.216.122 0 0 1
1
aufhören

Installieren Sie Memcached für Lua

wget https://github.com/openresty/lua-resty-memcached/archive/v0.11.tar.gz
tar -zxvf v0.11.tar.gz
mkdir -p /usr/local/share/lua/5.1
cp -r lua-resty-memcached-0.11/lib/resty /usr/local/share/lua/5.1

Erstellen Sie eine test.lua-Datei

clientIP = ngx.req.get_headers()["X-Real-IP"]
wenn clientIP == nil dann
  clientIP = ngx.req.get_headers()["x_forwarded_for"]
Ende
wenn clientIP == nil dann
  ClientIP=ngx.var.remote_addr
Ende
  lokaler Memcached = erfordert "resty.memcached"
  lokaler Memc, Fehler = Memcached: neu ()
  wenn nicht memc dann
    ngx.say("Memc konnte nicht instanziiert werden:", err)
    zurückkehren
  Ende
  lokal ok, Fehler =memc:connect("127.0.0.1",11211)
  wenn nicht ok dann
    ngx.say("Verbindung konnte nicht hergestellt werden:",err)
    zurückkehren
  Ende
  lokale Res, Flags, Fehler =memc:get(ClientIP)
  --ngx.say("Wertschlüssel: ",res,clientIP)
  wenn err dann
    ngx.say("Client-IP konnte nicht abgerufen werden", err)
    zurückkehren
  Ende
  wenn res == "1" dann
    ngx.exec("@server_test")
    zurückkehren
  Ende
  ngx.exec("@server_produkt")

Nginx-Konfiguration

  Server {
    hören Sie 8867;
    Servername www.siguoya.name;
    root /usr/local/nginx/1.12.1/html;
    Standort / {
      Inhalt nach Lua-Datei /etc/nginx/test.lua;
    }
    Standort /hallo {
      Standardtyp Text/Plain;
      content_by_lua 'ngx.say("hallo lua")';
    }
    Standort /ua
      Standardtyp Text/Plain;
      Inhalt von Lua '
        clientIP = ngx.req.get_headers()["BENUTZERAGENT"]
        ngx.say("IP:",ClientIP)
        ';
    }
    Standort @Server_Produkt {
      Standardtyp Text/Plain;
      gib 200 'Produkt' zurück;
    }
    Standort @server_test {
      Standardtyp Text/Plain;
      gib 200 'Test' zurück;
    }
  }

Da wir die IP 119.32.216.122 zu memcached hinzugefügt haben, sehen wir beim Besuch von http://www.siguoya.name:8867/ den Inhalt test

Nachdem ich den globalen Proxy eingeschaltet hatte, stellte ich fest, dass der angezeigte Inhalt das Produkt war, das bei einigen Benutzern den Effekt eines Graustufentests erzielte.

Dies ist das Ende dieses Artikels über die Implementierung der Graustufenversion von Nginx und Lua. Weitere relevante Inhalte zur Graustufenversion von Nginx und Lua finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Zusammenfassung der drei Methoden zur Implementierung der Graustufenfreigabe in Nginx

<<:  Unterschiede zwischen ES6-Vererbung und ES5-Vererbung in js

>>:  Detaillierte Erklärung zum Erstellen einer aktualisierbaren Ansicht in MySQL

Artikel empfehlen

Anwendung von Ankerpunkten in HTML

Ankerpunkt festlegen <a name="nach oben&qu...

So ändern Sie in Nginx die über http aufgerufene Website in https

Inhaltsverzeichnis 1. Hintergrund 2. Voraussetzun...

Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

Dieser Artikel veranschaulicht anhand eines Beisp...

So installieren Sie Docker CE auf Ubuntu 18.04 (Community Edition)

Deinstallieren Sie alte Versionen Sollten Sie zuv...

Detaillierte Schritte zur Installation von MySQL mit Cluster-RPM

MySQL-Datenbank installieren a) Laden Sie das MyS...

Detaillierte Erklärung der Komponentenkommunikation in React

Inhaltsverzeichnis Übergeordnete Komponente kommu...

Zwei Implementierungscodes der programmgesteuerten Navigation mit Vue-Router

Zwei Möglichkeiten zum Navigieren auf der Seite D...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.20

Tutorial zum Herunterladen und Installieren von M...

So verwenden Sie CocosCreator zur Tonverarbeitung bei der Spieleentwicklung

Inhaltsverzeichnis 1. Grundlagen der Audiowiederg...

Vue implementiert Ankerpositionierungsfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Einfaches HTML-Applet für Einkaufsmengen

Dieser Artikel stellt Ihnen ein einfaches HTML-Ap...

So analysieren Sie den SQL-Ausführungsplan in MySQL mit EXPLAIN

Vorwort In MySQL können wir den Befehl EXPLAIN ve...