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

推薦する

CSS における XHTML タグの対応する属性と使用法

XHTML CSS を使って Web ページをデザインし始めた頃は、タグの使用経験も少なく、あまり気...

MySQL で MHA アーキテクチャのデプロイメントを構築する手順

目次マハ1. MAHアーキテクチャの概要2. 適用可能なシナリオ3. MHAの動作原理4. MHAの...

Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...

dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする

前回の記事では、Docker を使用して、コンパイルされた jar パッケージをイメージに組み込む ...

要素内の TimePicker は時間の一部を無効にします (分単位で無効)

プロジェクトの要件は、日付と時刻を選択し、現在の時刻以降の時刻のみを選択し、最小レベルを分単位で無効...

HTMLタグのデフォルトスタイルの配置

html、address、blockquote、body、dd、div、dl、dt、fieldset...

SQL 実践演習: オンライン モール データベース ユーザー情報データ操作

オンラインショッピングモールデータベース - ユーザー情報データ運用プロジェクトの説明電子商取引の台...

MySQL実践スキル: 2つのテーブルに異なるデータがあるかどうかを比較する方法の分析

この記事では、MySQL が 2 つのテーブルを比較して、異なるデータがあるかどうかを確認する方法を...

CSSセレクタを使用してラベルスタイルを設定するサンプルコード

CSS セレクターHTML タグにスタイルを設定すると、タグの属性を設定できます。 <div ...

MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します

背景: MySQL では、レベルに制限がある場合、たとえば、ツリーの最大深度を事前に決定できる場合、...

IISとAPACHEはHTTPSへのHTTPリダイレクトを実装しています

7 のMicrosoft の公式 Web サイトから HTTP Rewrite モジュールをダウンロ...

MySQL 5.7.17無料インストール版のインストールと設定

MYSQLバージョン:MySQL Community Server 5.7.17、インストール不要版...

Vueは買い物数量を変更できるショッピングカートを実装します

この記事では、Vueを使用してショッピングカートの数量を変更する方法を紹介します。具体的な内容は次の...

Reactスロットの使い方

目次必要コアアイデアReactでスロットを実装する2つの方法必要コンポーネントを自分で書きました。コ...

MySql5.x を MySql8.x にアップグレードする方法と手順

MySQL 5.x と MySQL 8.0.X のいくつかの違いapplication.proper...