Heim >Backend-Entwicklung >PHP-Tutorial >In Nginx eingebettetes Lua-Skript, das in Verbindung mit Redis verwendet wird
Das in 0x00 Nginx eingebettete Lua-Skript verfügt über die folgenden Funktionen:
20.000 gleichzeitige Verbindungen
Das Lua-Skript kann auf Nignx ausgeführt werden 11 Verschiedene Ebenen spielen bei der Erweiterung der Ngnix-Funktionen eine Rolle
Lua ist extrem schnell (Registrierungsanweisungen)
0x01-Anwendungsszenario
Anforderungsfilterung auf der Webserverseite durchführen (z. B. WAF, Anti CC usw.)
0x02 Einfacher Konfigurationsprozess
Testumgebung Ubuntu Server 14.04.2 LTS
Mehrere Module, die heruntergeladen werden müssen (achten Sie auf die Installationsreihenfolge und Probleme mit dem Exportpfad)
Nginx 1.7.4
LuaJIT-2.0.4 (Ein Just-In-Time-Compiler
für Lua)
ngx_devel_kit( Nginx Development Kit)
echo-nginx-module( mehr Extras im Shell-Stil zur Nginx-Konfigurationsdatei)
lua-nginx-module(Embed die Kraft von Lua in Nginx)
0x03 Das mögliche Problem ist, dass lua.h nicht gefunden werden kann usw., weil die lib und inc von luaJIT nicht in den Umgebungsvariablen konfiguriert sind
Sie müssen es wie folgt konfigurieren (Ihr tatsächlicher lokaler Pfad):
export LUAJIT_LIB=/usr/lib/lua
export LUAJIT_INC=/usr/local/include/ luajit-2.0
cp /usr/local/include/luajit-
Falls vorhanden In einer Situation, in der der Dienst nicht gestartet werden kann, kann der Dienst Tail /var/log/syslog anzeigen Fehler anzeigen
Wenn Nginx nicht gestartet werden kann, können Sie Tail /var/cache/nginx/error.log anzeigen
Wenn die Nginx-Bin-Datei generiert wurde, können Sie mit nginx -V überprüfen, ob die Konfigurationsdatei korrekt ist
Wenn die Folgende Module fehlen:
PCRE
sudo apt-get install libpcre3 libpcre3-dev
zlib
sudo apt-get install zlib1g- dev
openssl
sudo apt -get install libssl-dev
ps: Bitte achten Sie insbesondere darauf, nicht die neueste Version herunterzuladen Version von Nginx. Die oben genannten Modulschnittstellen werden möglicherweise nicht unterstützt. daher werde ich hier nicht auf Details eingehen
0x04 Nach der Installation
Ändern Sie die Datei nginx.conf (Standardpfad/etc/nginx/nginx.conf):
sudo /etc/nginx/ sbin/nginx -s reload
Wirkung:
Verzeichnis der gesamten Lua-Datei (beachten Sie, dass die Dateien im Lua-Ordner sind neu erstellt als nächstes):
/etc/nginx/lua/hello.lua
/etc/nginx/lua/hello_redis.lua
nginx.conf-Datei hinzugefügt:
hello.lua-Dateiinhalt:
ngx.header.content_type = " text/plain";
ngx.say("say hello from hello.lua");
Alle hinzugefügten Standortcodes:
Laden Sie dann Nginx neu, um den Effekt zu sehen.
3. Verwenden Sie Redis (das dritte neu hinzugefügte Redis):
Die Prämisse ist, dass auf dem Computer bereits ein Redis-Server vorhanden ist, um ihn unter Ubuntu zu installieren: sudo apt-get install redis-server
hello_redis.lua 内容:
local redis = require "redis"
localer Cache = redis.new()
local ok, err = cache.connect(cache, '127.0.0.1', '6379')
cache:set_timeout(60000)
Wenn nicht ok, dann
ngx.say("failed to connect:", err)
return
end
res, err = Cache:set( "hello", "redis in nginx_inline_lua")
Wenn nicht ok, dann
ngx.say("failed to set hello: ", err)
return
end
ngx.say("set result: ", res)
local res, err = cache:get("hello")
if not res then
ngx.say("failed to get hello: ", err)
return
end
Wenn nicht ok, dann
0x05 现在为止,简单的一个在Nginx. 中Ich habe Lua kennengelernt操作Redis的过程已经完成了, 在配置时候可能有很多细小的问题, 但是不要放弃, 坚持下去, 相信你就会成功.
0xFF 附加资料:
http:/ /wiki.nginx.org/HttpLuaModule
http://tengine.taobao.org/
转载请注明出处(个人论坛):http://www.byteway.net/thread-index-fid-4-tid-316.htm
Mit Nginx ausgestattet助。