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

nginx チュートリアル

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

Nginx and Lua

Fire Cloud Evil Godからの引用: 世界の武道において、壊れないものはありません、スピードだけが壊れません! Nginx の専門は速度であり、Lua の専門は速度です。この 2 つの組み合わせには、間違いなく速度の點で遺伝的な利點があります。

OpenResty は、Nginx と Lua を最初に組み合わせたもので、Lua を Nginx に組み込む ngx_lua モジュールがあり、Tengine にも ngx_lua モジュールが含まれていました。 2 つの違いについては、OpenResty は Nginx のバンドルですが、Tengine は Nginx のフォークです。 OpenRestyとTengineは両方とも中國人によって作成されたプロジェクトであることは言及する価値があります。前者は主にChun GeとXiaozheによって開発され、後者は主に淘寶によって管理されています。

OpenResty と Tengine の長所と短所については、各自で判斷してください。以下の情報が參考になります。 Lua で接著された Nginx エコシステム

    淘寶網(wǎng)の Nginx アプリケーション、カスタマイズ、開発の実踐
  • Tech-Club での「Lua で接著された Nginx 生態(tài)環(huán)境」に関する Chun 兄弟の講演の記録を読むことをお勧めします。情報があります。
インストール

には、最新バージョンの Nginx、LuaJIT、ngx_devel_kit、ngx_lua およびその他のインストール ファイルが必要です。

Lua または LuaJIT をインストールすることも可能ですが、効率性の観點から LuaJIT をインストールすることをお勧めします。

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

デフォルトパスにインストールされているため、LuaJITに対応するlibやincludeは全て/usr/localディレクトリにあります。

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

これで、Nginx をコンパイルできます:

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

Nginx を起動して確認(rèn)してください。運が悪いと、次のエラーが発生する可能性があります:

共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

これは狂った狀況? ldd コマンドを使用して確認(rèn)できます:

shell> ldd /path/to/nginx libluajit-.so => not foundこのような問題は通常、ldconfig コマンドを使用して解決できます:

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

Nginx を再度起動してみてください。問題ないはずです。

アプリケーション

まず簡単なプログラムで準(zhǔn)備を整えましょう。次のコードを Nginx の構(gòu)成ファイル nginx.conf に追加し、Nginx を再起動して、參照して効果を確認(rèn)します。

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

ngx_lua を詳しく學(xué)ぶ前に、Brother Chun が書いた Nginx チュートリアルを注意深く読むことをお勧めします。

ここで重要なポイントについて説明します。Nginx 構(gòu)成ファイルで使用される言語は、本質(zhì)的に「手続き型」ではなく「宣言型」です。 Nginx がリクエストを処理するとき、命令の実行は命令が定義されたときの物理的な順序によって決まりません。Nginx で一般的に使用されるステージは、書き換えステージ、アクセス ステージ、コンテンツ ステージです。 、など。デモ コードの set 命令は rewrite ステージに屬し、content_by_lua 命令は content ステージに屬します。この 2 つの命令の順序を入れ替えてみても、プログラムは正常に実行できることがわかります。

Redis を使用して、より実踐的な例を書いてみましょう。

まず、次の內(nèi)容を含む Redis 構(gòu)成ファイル config.json を作成する必要があります:

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

次に、Lua を使用する構(gòu)成ファイルを解析するスクリプト init.lua を作成します。 CJSON モジュール:

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

説明: コードでは共有メモリが使用されているため、リクエストごとに構(gòu)成ファイルを解析する必要はありません。

次に、Restyを使用してコンテンツをレンダリングするスクリプトcontent.luaを作成します。 Redis モジュール:

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

注: Resty Redis モジュールをベンダー ディレクトリに配置し、後で Nginx でセットアップすることをお勧めします。

最後に、Nginx 構(gòu)成ファイルで設(shè)定する必要があります:

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

注: デバッグを容易にするために、lua_code_cache をオフにしました。実稼働環(huán)境の場合は、オンにする必要があります。

さらに、CJSON をインストールするときは、Makefile 內(nèi)のヘッダー ファイルのパスに注意する必要があります。デフォルトは次のとおりです:

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

LuaJIT をインストールする場合は、ヘッダー ファイルを?qū)潖辘工毳钎%欹去辘衰偿冤`することをお勧めします。 :

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

最近參加した のプロジェクトは、Web ポーリング用のいくつかのインターフェイスを提供しており、すべて Nginx + Lua を使用して実裝されていますが、サーバーは合計で十?dāng)?shù)臺しかありませんが、毎日數(shù)十億のリクエストを提供できます。とてもパワフルな。

最後に、ある敗者の言葉を引用して締めくくりたいと思います。Lua は未婚の男性プログラマーのお気に入りです。

このエントリは、Lao Wang によってテクニカル カテゴリに公開され、Lua と Nginx のタグが付けられました。固定リンク お気に入りに追加します。

「NGINXとLUA」には29件のコメントがあります

以上、さまざまな側(cè)面を含めて nginx チュートリアルを紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windowsでnginxを構(gòu)成する方法 Windowsでnginxを構(gòu)成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構(gòu)成する方法は? nginxをインストールし、仮想ホスト構(gòu)成を作成します。メイン構(gòu)成ファイルを変更し、仮想ホスト構(gòu)成を含めます。 nginxを起動またはリロードします。構(gòu)成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構(gòu)成します。ファイアウォールを選択的に設(shè)定して、ポート80および443のトラフィックを許可します。

Dockerによってコンテナを起動する方法 Dockerによってコンテナを起動する方法 Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ畫像を引く:「Docker Pull [Mirror Name]」を?qū)g行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を?qū)g行します。コンテナのステータスを確認(rèn)してください:コンテナが「Docker PS」で実行されていることを確認(rèn)します。

Dockerコンテナの名前を確認(rèn)する方法 Dockerコンテナの名前を確認(rèn)する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照會できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Nginxが開始されるかどうかを確認(rèn)する方法 Nginxが開始されるかどうかを確認(rèn)する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認(rèn)する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認(rèn)します。 3.システムログのnginx起動メッセージを確認(rèn)します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

Docker用のコンテナを作成する方法 Docker用のコンテナを作成する方法 Apr 15, 2025 pm 12:18 PM

Dockerでコンテナを作成します。1。畫像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

nginxを開始する方法 nginxを開始する方法 Apr 14, 2025 pm 01:06 PM

質(zhì)問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

nginxとapacheを選択する:あなたのニーズに合った適切 nginxとapacheを選択する:あなたのニーズに合った適切 Apr 15, 2025 am 12:04 AM

NginxとApacheには獨自の利點と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構(gòu)成とリッチモジュールが必要なシナリオに適しています。コア機(jī)能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

Centosの下でのphpstormパフォーマンス最適化方法 Centosの下でのphpstormパフォーマンス最適化方法 Apr 14, 2025 pm 05:30 PM

CENTOSシステムでのPHPstormパフォーマンスを改善するための実用的なヒントこの記事は、CentosシステムでのPHPstormのパフォーマンスを最適化し、開発効率を向上させるためのさまざまな方法を提供します。最適化測定を?qū)g裝する前に、重要なデータをバックアップし、テスト環(huán)境の結(jié)果を確認(rèn)してください。 1。システムレベルの最適化とシステムサービスサービス:不必要なシステムサービスとデーモンを無効にして、システムリソースの使用を削減します。インターフェイスレスモード:グラフィカルインターフェイスが必要ない場合、インターフェイスレスモードに切り替えると、リソースを大幅に節(jié)約できます。冗長ソフトウェアのアンインストール:使用されなくなったソフトウェアパッケージとサービスを削除し、システムリソースを無料で使用できます。 2。PHP構(gòu)成最適化ENABLE OPCACHE:OpCache拡張機(jī)能をインストールして構(gòu)成する

See all articles