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 関数のプロパティとコンテキスト パラメータの詳細な説明

推薦する

Node.js コード実行をバイパスするためのヒントのまとめ

目次1. 子プロセス2. nodejsでのコマンド実行2.1 16進数エンコード2.2 ユニコードエ...

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...

重複したMySQLテーブルをマージして削除する簡単な方法

シナリオ:クロールされたデータは、別のメインテーブルと同じ構造を持つデータテーブルを生成するため、マ...

APP (IOS、Android) を呼び出すモバイル H5 の記述例

iOS 1. URLスキームこのソリューションは基本的に、WeChat、QQ 組み込みブラウザ、QQ...

HTML TextArea でのフォーマット保存の問題の解決方法

textarea の形式は保存時にデータベースに保存できますが、表示時には /n と相互に変換できな...

円形グラデーションプログレスバー効果を実現する CSS サンプルコード

実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...

使用場所によって混乱しやすいXHTMLタグ

<br />jb51.net では、常に記事のセマンティクスを重視してきましたが、HTM...

WeChatアプレットが複数行テキストのスクロール効果を実現

この記事の例では、WeChatアプレットで複数行のテキストスクロールを実装するための具体的なコードを...

Linux システム修復モード (シングル ユーザー モード)

目次序文1. シングルユーザーモードでの一般的なバグ修正2. シングルユーザーモードでシステムパスワ...

Vue プロジェクトのパッケージ化、マージ、圧縮により、Web ページの応答速度を最適化します。

目次序文1. リクエスト内容が大きすぎる解決: CDN の紹介リクエストリソースを圧縮する1. HT...

MySQLデータベースのデータテーブルに関する詳細な基本操作

目次1. 現在のデータベース内のテーブルを表示する2. テーブルを作成する3. 指定されたテーブル構...

MySQL学習データベース操作DML初心者向け詳細解説

目次1. ステートメントを挿入する1.1 行を挿入する1.2 複数行を挿入する1.3 クエリステート...

Vueタイマーの実装方法

この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

JavaScript での実行コンテキストと実行スタックの例の説明

JavaScript - 原則シリーズ日常の開発では、既存のプロジェクトを引き継ぐときは常に、まず他...