NginxにLuaモジュールを追加する方法

NginxにLuaモジュールを追加する方法

luaをインストールする

http://luajit.org/download/LuaJIT-2.0.5.tar.gz をダウンロードしてください 
tar -zxvf LuaJIT-2.0.5.tar.gz
LuaJIT-2.0.5 をCDに追加
make && make install PREFIX=/usr/local/LuaJIT

etc/profile が追加されました

# ルア
LUAJIT_LIB=/usr/local/LuaJIT/lib をエクスポートします。 
LUAJIT_INC=/usr/local/LuaJIT/include/luajit-2.0 をエクスポートします。

ソース etc/profile

ngx_devel_kitモジュールをダウンロードする

https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz をダウンロードしてください

NDK(nginx開発キット)モジュールは、nginxサーバーのコア機能を拡張するモジュールです。これをベースにサードパーティのモジュール開発を迅速に実装できます。 NDK は、いくつかの基本的なタスクを処理するための関数とマクロを提供し、サードパーティ モジュールの開発に必要なコードの量を削減します。

lua-nginx-module をダウンロード

https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz を取得します。

lua-nginx-module モジュールは lua を nginx で直接実行できるようにします

オリジナル編集を見る

nginx -V

のように:
設定引数: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-http_v2_module

nginx の元のディレクトリを入力します:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_sub_module --with-http_v2_module --add-module=/root/lua-nginx-module-0.10.9rc7/ --add-module=/root/ngx_devel_kit-0.3.0

make だけを実行し、make install は実行しないでください。

コンパイル エラーは、Lua 環境変数が正しくないことが原因であるはずです。

nginx -V コマンド エラー。/nginx: 共有ライブラリのロード中にエラーが発生しました: libluajit-5.1.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

解決する:
echo "/usr/local/LuaJIT/lib" >> /etc/ld.so.conf

ldconfig

成功したら、nginx -V でチェックしてエラーがないことを確認します。

元のnginxをnginx_oldとしてバックアップします

cp objs/nginx を元の nginx にコピーして上書きします。

ビルドディレクトリで実行

アップグレードする

Nginx lua モジュールを追加

テスト:

サーバ{
 ...
 場所 /lua {
  デフォルトタイプ 'text/html';
  コンテンツbylua
    ngx.say("こんにちは、lua!")
  ';
 }
 ...
}

ブラウザが開きます:

http://blog.13sai.com/lua

こんにちは、ルアが見えますよ!

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で nginx 用の waf モジュールをインストールする
  • Lua モジュールを使用して WAF を実装する Nginx の原理の分析

<<:  JavaScript 関数をよりエレガントにする方法

>>:  Vue3 の SetUp 関数のプロパティとコンテキスト パラメータの詳細な説明

推薦する

Javascriptでシングルトンパターンを実装する方法

目次概要コードの実装シングルトンパターンの簡易版改良版プロキシバージョンシングルトンモード遅延シング...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

MySQL5.7.27-winx64 バージョン win10 のダウンロードとインストールのチュートリアル図

MySQL 5.7 のインストール私たちは学校で MySQL データベースを学んでいます。先生は私た...

Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法

Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...

Node.jsをゼロから学ぶ

目次URL モジュール1. 解析メソッド2. フォーマット方法3. 解決方法イベントモジュール(イベ...

JavaScriptアニメーション関数のカプセル化の詳細な説明

目次1. アニメーション機能の原理2. アニメーション関数のシンプルなカプセル化3. アニメーション...

Tomcat サーバーの応答が遅い場合の解決策

1. 分析的思考1. 機械自身の理由を排除する2. サーバーパフォーマンス分析3. プロジェクト自体...

カレンダーウィジェットのネイティブJS実装

この記事の例では、カレンダーウィジェットを実装するためのjsの具体的なコードを参考までに共有していま...

ウェブタイポグラフィにおける致命的な意味的ミス 10 選

<br />これは、Steven D が書いた Web フロントエンド開発デザインの基本...

JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

目次トピック分析する使用目的解決:コードは次のように実装されます。分析:配列とポインタ解決:コードは...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...

Docker Tomcat のアクセス インターフェイスが表示されないのはなぜですか?

質問:オリジン サーバーはターゲット リソースの表現を見つけることができないか、既存の表現を公開した...

Linuxアカウントファイル制御管理の詳細な手順

Linux システムでは、ユーザーが手動で作成したさまざまなアカウントに加えて、システムまたはプログ...

Vueは、センシティブな単語フィルタリングコンポーネントを検出するためのさまざまなアイデアを実装しています。

目次前面に書かれた要件分析 v1アイデア1: インターセプションメソッドを使用して入力ボックスの入力...