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; } } }
結果:
上記の例では、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; } }
結果は図に示すとおりです。
nginscript の現在の問題
上記の導入後, 誰もが既に nginscript の基本を理解していると思います。それでは、この新生児がどのような問題を抱えているかを見てみましょう。
まず、デバッグ方法が弱いです。現時点では、まだ比較的原始的なものであり、ログを通じて表示され、エラー ログの詳細は非常に満足のいくものではありません。
第二に、コントロールが弱いです。現時点では、nginscript の処理能力は http リクエストの処理と返されるレスポンスに限定されており、動的ユーザー データや転送設定テーブルの動的更新など、nginx リクエスト以外の一部のコンテンツを動的に処理することはまだできません。
最後に、全体的な実装が弱いです。全体の構造は比較的単純ですが、js_run と js_set の実行環境が一致していないため、js_set が正常に実行されるコード部分では js_run で例外が発生します。
要約すると、nginscript はまだ誕生したばかりで、大きな希望と展望を持っています。磨き上げて最適化するには時間がかかります。また、皆さんがより多くの意見やフィードバックを提供していただき、さらには独自のプラグインを提出していただければ幸いです。これにより、より良く成長することができます。
以上がnginxのnginScriptサンプルの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









