国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Nginx-Tutorial

Aug 08, 2016 am 09:23 AM
lua nginx quot shell

Nginx und Lua

Zitate von Fire Cloud Evil God: In den Kampfkünsten der Welt ist nichts unzerbrechlich, nur Geschwindigkeit! Die Spezialit?t von Nginx ist Geschwindigkeit, und die Spezialit?t von Lua ist Geschwindigkeit. Die Kombination der beiden hat zweifellos einen genetischen Geschwindigkeitsvorteil.

Der erste, der Nginx und Lua kombinierte, war OpenResty, das über ein ngx_lua-Modul verfügt, das Lua in Nginx einbettet; dann enthielt Tengine auch das ngx_lua-Modul. Was den Unterschied zwischen den beiden betrifft: OpenResty ist das Bundle von Nginx; w?hrend Tengine der Fork von Nginx ist. Es ist erw?hnenswert, dass OpenResty und Tengine beide von Chinesen erstellte Projekte sind. Ersteres wird haupts?chlich von Chun Ge und Xiaozhe entwickelt, und letzteres wird haupts?chlich von Taobao verwaltet.

Was die Vor- und Nachteile von OpenResty und Tengine angeht, bleibt es jedem überlassen, selbst zu urteilen. Die folgenden Informationen stehen als Referenz zur Verfügung:

  • ngx_openresty: ein von Lua geklebtes Nginx-?kosystem
  • Anwendungs-, Anpassungs- und Entwicklungspraxis von Taobao Nginx

Empfehlenswert ist die Lektüre des Artikels von Chun Ge im Tech-Club über ?Die von Lua geklebte ?kologische Nginx-Umgebung“ '' s Redeaufzeichnung, es gibt Informationen!

Installation

erfordert die neueste Version von Nginx, LuaJIT, ngx_devel_kit, ngx_lua und anderen Installationsdateien.

Die Installation von Lua oder LuaJIT ist m?glich, aus Effizienzgründen wird jedoch die Installation von LuaJIT empfohlen.

shell> wget http://luajit.org/download/LuaJIT-.tar.gz shell> tar zxvf LuaJIT-.tar.gz shell> cd LuaJIT- shell> make shell> make install

Da es im Standardpfad installiert ist, befinden sich die lib und das Include, die LuaJIT entsprechen, alle im Verzeichnis /usr/local.

shell> export LUAJIT_LIB=/usr/local/lib shell> export LUAJIT_INC=/usr/local/include/luajit-

Jetzt k?nnen Sie Nginx kompilieren:

shell> wget http://nginx.org/download/nginx-.tar.gz shell> tar zxvf nginx-.tar.gz shell> cd nginx- shell> ./configure --add-module=/path/to/ngx_lua \ --add-module=/path/to/ngx_devel_kit shell> make shell> make install

Versuchen Sie, Nginx zu starten und sehen Sie, ob Sie Pech haben. M?glicherweise tritt die folgende Fehlermeldung auf:

Freigegebene Objektdatei kann nicht ge?ffnet werden: Keine solche Datei oder kein solches Verzeichnis

Ist das eine seltsame Situation? Sie k?nnen den Befehl ldd verwenden, um Folgendes zu überprüfen:

shell> ldd /path/to/nginx libluajit-.so => not found

Solche Probleme k?nnen normalerweise mit dem Befehl ldconfig gel?st werden:

shell> echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf shell> ldconfig

Versuchen Sie, Nginx erneut zu starten, und es sollte in Ordnung sein.

Anwendung

Lassen Sie uns die Dinge zun?chst mit einem einfachen Programm aufw?rmen: Fügen Sie den folgenden Code zur Nginx-Konfigurationsdatei nginx.conf hinzu, starten Sie Nginx neu und durchsuchen Sie dann. Sie k?nnen sehen, dass es funktioniert hat.

location /lua { set $test "hello, world."; content_by_lua ' ngx.header.content_type = "text/plain"; ngx.say(ngx.var.test); '; }

Bevor Sie ngx_lua eingehend lernen, wird empfohlen, das von Bruder Chun verfasste Nginx-Tutorial sorgf?ltig zu lesen.

Hier werde ich über den entscheidenden Punkt sprechen: Die in der Nginx-Konfigurationsdatei verwendete Sprache ist im Wesentlichen ?deklarativ“ und nicht ?prozedural“. Wenn Nginx eine Anfrage verarbeitet, wird die Ausführung von Anweisungen nicht durch die physische Reihenfolge bestimmt, in der die Anweisungen definiert werden, sondern h?ngt von der Phase ab, zu der die Anweisungen geh?ren. Die in Nginx h?ufig verwendeten Phasen sind: Rewrite-Phase, Zugriffsphase, Inhaltsphase , usw. . Die set-Anweisung im Democode geh?rt zur Rewrite-Phase und die content_by_lua-Anweisung geh?rt zur Content-Phase. Wenn Sie versuchen, die Reihenfolge der beiden Anweisungen zu vertauschen, werden Sie feststellen, dass das Programm weiterhin normal ausgeführt werden kann.

Versuchen wir, ein praktischeres Beispiel mit Redis zu schreiben.

Zuerst müssen wir eine Redis-Konfigurationsdatei config.json mit folgendem Inhalt erstellen:

{ "host": "", "port": "" }

Dann erstellen wir ein Skript init.lua, das die Konfigurationsdatei analysiert, die verwendet wird Lua CJSON-Modul:

local cjson = require "cjson"; local config = ngx.shared.config; local file = io.open("config.json", "r"); local content = cjson.decode(file:read("*all")); file:close(); for name, value in pairs(content) do config:set(name, value); end

Beschreibung: Im Code wird Shared Memory verwendet, sodass Sie nicht bei jeder Anfrage die Konfigurationsdatei analysieren müssen.

Als n?chstes erstellen wir ein Skript content.lua, das Inhalte mithilfe von Resty rendert Redis-Modul:

ngx.header.content_type = "text/plain"; local redis = require "resty.redis"; local config = ngx.shared.config; local instance = redis:new(); local host = config:get("host"); local port = config:get("port"); local ok, err = instance:connect(host, port); if not ok then ngx.log(ngx.ERR, err); ngx.exit(ngx.HTTP_SERVICE_UNAVAILABLE); end instance:set("name", "laowang"); local name = instance:get("name") instance:close(); ngx.say("name: ", name);

Hinweis: Es wird empfohlen, das Resty Redis-Modul im Herstellerverzeichnis abzulegen und es sp?ter in Nginx einzurichten.

Zuletzt müssen wir es in der Nginx-Konfigurationsdatei einrichten:

lua_shared_dict config 1m; lua_package_path "/path/to/vendor/?.lua;;"; init_by_lua_file /path/to/init.lua; server { lua_code_cache off; location /lua { content_by_lua_file /path/to/content.lua; } ... }

Hinweis: Um das Debuggen zu erleichtern, habe ich lua_code_cache deaktiviert. Wenn es sich um eine Produktionsumgebung handelt, sollte dies der Fall sein eingeschaltet.

Au?erdem müssen Sie bei der Installation von CJSON auf den Pfad der Header-Datei im Makefile achten. Der Standardwert ist:

PREFIX = /usr/local LUA_INCLUDE_DIR = $(PREFIX)/include

Wenn Sie LuaJIT installieren, ist dies der Fall Am besten kopieren Sie die Header-Datei in das entsprechende Verzeichnis:

cp /usr/local/include/luajit-/* /usr/local/include/

Ein Projekt, an dem ich kürzlich teilgenommen habe, stellt einige Schnittstellen für Web-Polling bereit, die alle mit Nginx+Lua implementiert sind, obwohl dort Insgesamt sind es nur ein Dutzend. Der Server kann jeden Tag Milliarden von Anfragen bereitstellen, was sehr leistungsstark ist.

Lassen Sie mich abschlie?end ein Zitat eines Verlierers zitieren: Lua ist der Favorit unverheirateter m?nnlicher Programmierer.

Dieser Eintrag wurde von Lao Wang in der Kategorie ?Technisch“ ver?ffentlicht und mit Lua und Nginx getaggt. Permalink zu Favoriten hinzufügen.

Es gibt 29 Kommentare zu ?NGINX und LUA


Das Obige hat das Nginx-Tutorial vorgestellt, einschlie?lich verschiedener Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. ?ndern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So starten Sie einen Container von Docker So starten Sie einen Container von Docker Apr 15, 2025 pm 12:27 PM

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

So überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

Sie k?nnen den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So best?tigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. überprüfen Sie, ob Port 80 ge?ffnet ist; 3. überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So erstellen Sie Container für Docker So erstellen Sie Container für Docker Apr 15, 2025 pm 12:18 PM

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

So starten Sie Nginx So starten Sie Nginx Apr 14, 2025 pm 01:06 PM

Frage: Wie starte ich Nginx? Antwort: Installieren Sie Nginx Startup Nginx -Verifizierung Nginx Is Nginx Start Erkunden

W?hlen Sie zwischen Nginx und Apache: Die richtige Passform für Ihre Anforderungen W?hlen Sie zwischen Nginx und Apache: Die richtige Passform für Ihre Anforderungen Apr 15, 2025 am 12:04 AM

Nginx und Apache haben ihre eigenen Vor- und Nachteile und eignen sich für verschiedene Szenarien. 1.Nginx ist für hohe Parallelit?ts- und geringe Ressourcenverbrauchsszenarien geeignet. 2. Apache eignet sich für Szenarien, in denen komplexe Konfigurationen und reichhaltige Module erforderlich sind. Durch den Vergleich ihrer Kernfunktionen, Leistungsunterschiede und Best Practices k?nnen Sie die Serversoftware ausw?hlen, die Ihren Anforderungen am besten entspricht.

PHPStorm -Leistungsoptimierungsmethode unter CentOS PHPStorm -Leistungsoptimierungsmethode unter CentOS Apr 14, 2025 pm 05:30 PM

Praktische Tipps zur Verbesserung der PHPStorm -Leistung in CentOS -Systemen Dieser Artikel bietet eine Vielzahl von Methoden, mit denen Sie die Leistung von PHPStorm in CentOS -Systemen optimieren und die Entwicklungseffizienz verbessern k?nnen. Stellen Sie vor der Implementierung von Optimierungsma?nahmen unbedingt wichtige Daten und überprüfen Sie die Ergebnisse in der Testumgebung. 1. Optimierungs- und Stromlinien-Systemdienste auf Systemebene: Deaktivieren Sie unn?tige Systemdienste und D?monen, um die Nutzung der Systemressourcen zu reduzieren. Interfaceless -Modus: Das Umschalten in den interfaclosen Modus kann Ressourcen erheblich sparen, wenn Sie keine grafische Schnittstelle ben?tigen. Deinstallieren Sie redundante Software: Entfernen Sie Softwarepakete und -dienste, die nicht mehr verwendet werden, und die Systemressourcen frei. 2. Die PHP -Konfigurationsoptimierung aktivieren OPCACHE: Installieren und Konfigurieren von OPCache -Erweiterungen zur Anzeige

See all articles