検索
ホームページ運用・保守NginxnginxのnginScriptサンプルの分析

nginxのnginScriptサンプルの分析

May 20, 2023 am 09:52 AM
nginxnginscript

nginx について簡単に説明しましょう

nginx [engine x] は、世界で最も人気があり、最高の Web サーバーおよびリバース プロキシ サーバーです。サードパーティ企業の統計によると、現在世界中のサーバーの少なくとも 23% が nginx を使用しており、もちろんこの数はまだ拡大し続けています。国産BATの第一候補でもあるので、初めて注目しました。

nginx は主に次のことができます:

1. tcp の 7 番目の層で動作し、http プロトコルのすべてのコンテンツを分析して処理できます。
2. lua、perl、JavaScript 動的言語をサポート
3. サードパーティのプラグインをサポート

nginscript について話しましょう

1. nginscript JavaScript/ecmascript のサブセットです。これは JavaScript 言語のほとんどの機能を実装していますが、ECMAScript 標準に完全には準拠しておらず、JavaScript のより難しい部分は放棄されています。

2. nginscript は v8 エンジンを通じて実装されません。代わりに、より小型でエネルギー消費が低く、nginx アプリケーション シナリオにより適した小型仮想マシン (vm) を通じて実装されます。 nginx が独自の字句解析セットを実装していることがわかります。

3. nginscript は nginx 設定ファイル内で実行されます。例: nginx.conf ファイル内。したがって、nginscript は、従来の構成ファイルで処理できるすべてを完了でき、同時に構成管理を動的にすることができます。これは、nginscript が登場した最も重要な理由でもあります。

4. nginscript は nginx プラグインとして存在します。プラグイン名は njs です。他の nginx プラグインと同様に、インストールを完了するには nginx を再コンパイルする必要があります。

5. nginscript は現在開発初期段階にあります。 nginx チームとコミュニケーションをとり、電子メールを通じて要求を提出することができます。

nginscript のインストール方法

こちらの公式手順に従ってください:

// 1. 最新の nginx パッケージをダウンロードしますwget //2. Unzip tar -xzvf nginx-1.9.4.tar.gz //3. mercurial を介して nginscript モジュールを取得します。ここで mercurial がインストールされていない場合は、yum install mercurial を実行する必要があります。 hg clone

//4. nginx をコンパイルします。ここでは njs モジュールのみを指定します。他の必要なモジュールも一緒にインストールすることを忘れないでください。 nginx をコンパイルしていない場合、一部の依存モジュールには yum のインストールが必要です。ご自身で検索してください。 cd nginx-1.9.4 ./configure --add-module=../njs/nginx --prefix=/usr/local make make install ok. これでインストールが完了し、プレイを開始できます。

nginscript の具体的な使用方法

nginscript を使用すると、主に 2 つの命令が nginx 設定システムに追加されます。具体的な手順は次のとおりです:

js_set、構成内の変数値を設定します

js_run、構成ルールを直接実行します

1. まず nginx の js_set を見てください。 .conf それはどのように機能しますか?

http {
 js_set $msg"
   var str = 'hello,imweb';
   // javascript str;
 ";
 server {
  ...
  location /{
   return 200 $msg;
  }
 }
}

結果:

nginxのnginScriptサンプルの分析

上記の例では、js を通じて nginx に変数値を設定できることがわかります。意のままに。これらの変数は、nginx 設定のさまざまな場所で使用できます。例: proxy_pass、limit_req_zone、sub_filter。以前の構成と比較して、柔軟性が大幅に向上しました。

2. js_runの実行ルールとシナリオ

js_runはlocation命令で実行され、指定されたパスと一致する場合、対応するJavaScriptが実行されます。 location
js_run はい http によって返されるコンテンツを JavaScript を通じて直接生成します
ここに具体的な例を示します:

location /imwebteam {
 js_run "
  var res;
  res = $r.response;
  res.status = 200;
  res.send('hello,imweb!');
  res.finish();
 ";
}

この結果は最初の結果と同じです。ここでは詳細には触れません。

3. 2 つの命令の処理に加えて、重要な変数 $r

js_set と js_run を通じて、http リクエストを完全に制御できます。制御方法は、変数 $r を使用することです。 $r の内容は、次の簡単な例で確認できます。

http {
 js_set $summary "
 var a, s, h;
 s = 'js summary\n\n';
 s += 'method: ' + $r.method + '\n';
 s += 'http version: ' + $r.httpversion + '\n';
 s += 'host: ' + $r.headers.host + '\n';
 s += 'remote address: ' + $r.remoteaddress + '\n';
 s += 'uri: ' + $r.uri + '\n';
 s += 'headers:\n';
 for (h in $r.headers) {
  s += ' header \"' + h + '\" is \"' + $r.headers[h] + '\"\n';
 }
 s += 'args:\n';
 for (a in $r.args) {
  s += ' arg \"' + a + '\" is \"' + $r.args[a] + '\"\n';
 }
 s;
 ";
 server {
 listen 8000;
 location /imwebteam{
  return 200 $summary;
 }
}

結果は図に示すとおりです。

nginxのnginScriptサンプルの分析

nginscript の現在の問題

上記の導入後, 誰もが既に nginscript の基本を理解していると思います。それでは、この新生児がどのような問題を抱えているかを見てみましょう。

まず、デバッグ方法が弱いです。現時点では、まだ比較的原始的なものであり、ログを通じて表示され、エラー ログの詳細は非常に満足のいくものではありません。
第二に、コントロールが弱いです。現時点では、nginscript の処理能力は http リクエストの処理と返されるレスポンスに限定されており、動的ユーザー データや転送設定テーブルの動的更新など、nginx リクエスト以外の一部のコンテンツを動的に処理することはまだできません。
最後に、全体的な実装が弱いです。全体の構造は比較的単純ですが、js_run と js_set の実行環境が一致していないため、js_set が正常に実行されるコード部分では js_run で例外が発生します。
要約すると、nginscript はまだ誕生したばかりで、大きな希望と展望を持っています。磨き上げて最適化するには時間がかかります。また、皆さんがより多くの意見やフィードバックを提供していただき、さらには独自のプラグインを提出していただければ幸いです。これにより、より良く成長することができます。

以上がnginxのnginScriptサンプルの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Nginx vs. Apache:Webサーバーテクノロジーの比較Nginx vs. Apache:Webサーバーテクノロジーの比較May 02, 2025 am 12:08 AM

Nginxは、高い並行性と静的コンテンツの処理に適していますが、Apacheは動的な内容と複雑なURL書き換えに適しています。 1.Nginxは、高い並行性に適したイベント駆動型モデルを採用しています。 2。Apacheは、動的なコンテンツに適したプロセスモデルまたはスレッドモデルを使用します。 3。NGINX構成は簡単ですが、Apache構成は複雑ですが、より柔軟です。

NginxとApache:展開と構成NginxとApache:展開と構成May 01, 2025 am 12:08 AM

NginxとApacheにはそれぞれ独自の利点があり、選択は特定のニーズに依存します。 1.NGINXは、単純な展開を備えた高い並行性に適しており、構成の例には仮想ホストとリバースプロキシが含まれます。 2。Apacheは複雑な構成に適しており、展開も同様に簡単です。構成の例には、仮想ホストとURL書き換えが含まれます。

Nginxユニットの目的:Webアプリケーションの実行Nginxユニットの目的:Webアプリケーションの実行Apr 30, 2025 am 12:06 AM

Nginxunitの目的は、Webアプリケーションの展開と管理を簡素化することです。その利点には、次のものが含まれます。1)Python、PHP、Go、Java、node.jsなどの複数のプログラミング言語をサポートします。 2)動的構成と自動リロード関数を提供します。 3)統一されたAPIを介してアプリケーションライフサイクルを管理します。 4)非同期I/Oモデルを採用して、高い並行性と負荷分散をサポートします。

Nginx:高性能Webサーバーの紹介Nginx:高性能Webサーバーの紹介Apr 29, 2025 am 12:02 AM

Nginxは2002年に開始され、C10Kの問題を解決するためにIgorsysoevによって開発されました。 1.Nginxは、高性能の非同期アーキテクチャであり、高い並行性に適した高性能Webサーバーです。 2。システムのパフォーマンスと信頼性を向上させるために、リバースプロキシ、ロードバランス、キャッシュなどの高度な機能を提供します。 3。最適化手法には、HTTP/2とセキュリティ構成を使用した、ワーカープロセスの数の調整、GZIP圧縮の有効化が含まれます。

Nginx vs. Apache:アーキテクチャを見てくださいNginx vs. Apache:アーキテクチャを見てくださいApr 28, 2025 am 12:13 AM

NginxとApacheの主なアーキテクチャの違いは、Nginxがイベント駆動型の非同期非ブロッキングモデルを採用し、Apacheはプロセスまたはスレッドモデルを使用することです。 1)nginxは、静的な内容と逆プロキシに適したイベントループとI/O多重化メカニズムを介して、高電流接続を効率的に処理します。 2)Apacheは、非常に安定しているがリソース消費量が高いマルチプロセスまたはマルチスレッドモデルを採用しており、リッチモジュールの拡張が必要な​​シナリオに適しています。

Nginx vs. Apache:長所と短所を調べますNginx vs. Apache:長所と短所を調べますApr 27, 2025 am 12:05 AM

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApache:重要な違​​いを理解するNginxとApache:重要な違​​いを理解するApr 26, 2025 am 12:01 AM

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxユニット:主要な機能と機能Nginxユニット:主要な機能と機能Apr 25, 2025 am 12:17 AM

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン