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

JavaScript-Beispielcode zum Ermitteln, ob eine Datei vorhanden ist

1. Geschäftsszenario Ich habe kürzlich Entwicklun...

So passen Sie mit CSS einen schöneren Link-Prompt-Effekt an

Vorschlag: Das möglichst häufige handschriftliche ...

Verstehen Sie kurz die MySQL-Datenbankoptimierungsphase

Einführung Haben Sie schon einmal eine Situation ...

Welche Bilddateiformate gibt es und wie wählt man sie aus?

1. Welche drei Formate? Dies sind: gif, jpg und pn...

Anweisungen zur Verwendung der MySQL-Isolations-Leseansicht

Welche historische Version kann die aktuelle Tran...

Eine kurze Analyse des Zustandsverständnisses von React

Wie definiert man komplexe Komponenten (Klassenko...

Erfahrung in der Lösung von Tomcat-Speicherüberlaufproblemen

Vor einiger Zeit habe ich Testern eine Produktver...

MySQL 5.7.18 Installations- und Konfigurations-Tutorial unter Windows

In diesem Artikel finden Sie das Installations- u...

So installieren Sie Nginx an einem bestimmten Ort im Centos-System

Wie installiere ich Nginx an einem bestimmten Ort...