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

nginx チュートリアル

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

Nginx and Lua

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

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

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

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

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

Lua または LuaJIT をインストールすることも可能ですが、効率性の観點(diǎn)から LuaJIT をインストールすることをお?jiǎng)幛幛筏蓼埂?

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 を起動(dòng)して確認(rèn)してください。運(yùn)が悪いと、次のエラーが発生する可能性があります:

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

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

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

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

Nginx を再度起動(dòng)してみてください。問(wèn)題ないはずです。

アプリケーション

まず簡(jiǎn)単なプログラムで準(zhǔn)備を整えましょう。次のコードを Nginx の構(gòu)成ファイル nginx.conf に追加し、Nginx を再起動(dòng)して、參照して効果を確認(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 が書(shū)いた Nginx チュートリアルを注意深く読むことをお?jiǎng)幛幛筏蓼埂?

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

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

まず、次の內(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 でセットアップすることをお?jiǎng)幛幛筏蓼埂?

最後に、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)境の場(chǎng)合は、オンにする必要があります。

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

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

LuaJIT をインストールする場(chǎng)合は、ヘッダー ファイルを?qū)潖辘工毳钎%欹去辘衰偿冤`することをお?jiǎng)幛幛筏蓼埂?:

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

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

最後に、ある敗者の言葉を引用して締めくくりたいと思います。Lua は未婚の男性プログラマーのお?dú)荬巳毪辘扦埂?

このエントリは、Lao Wang によってテクニカル カテゴリに公開(kāi)され、Lua と Nginx のタグが付けられました。固定リンク お?dú)荬巳毪辘俗芳婴筏蓼埂?

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

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

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

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

Docker Containerの起動(dòng)手順:コンテナ畫(huà)像を引く:「Docker Pull [Mirror Name]」を?qū)g行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動(dòng)します:「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コンテナ名を照會(huì)できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

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

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

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

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

nginxを開(kāi)始する方法 nginxを開(kāi)始する方法 Apr 14, 2025 pm 01:06 PM

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

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

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

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

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

Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率 Nginx vs. Apache:パフォーマンス、スケーラビリティ、効率 Apr 19, 2025 am 12:05 AM

NginxとApacheはどちらも強(qiáng)力なWebサーバーであり、それぞれがパフォーマンス、スケーラビリティ、効率の點(diǎn)で獨(dú)自の利點(diǎn)と短所を備えています。 1)nginxは、靜的なコンテンツを処理し、逆プロキシを逆にするときにうまく機(jī)能します。 2)Apacheは、動(dòng)的コンテンツを処理するときにパフォーマンスが向上し、リッチモジュールサポートが必要なプロジェクトに適しています。サーバーの選択は、プロジェクトの要件とシナリオに基づいて決定する必要があります。

See all articles