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

推薦する

MySQL 5.7 でルートパスワードを忘れた後に変更する方法の詳細なチュートリアル

序文長い間、MySQL のアプリケーションおよび学習環境は MySQL 5.6 以前のバージョンであ...

JavaScript における型の必須および暗黙的な変換の詳細な説明

目次1. 暗黙的な変換二重等号での変換ブール型変換「+」と「-」 2. 強制型変換' ...

Vue は携帯電話の認証コードによるログインを実装します

この記事では、携帯電話認証コードログインを実装するためのVueの具体的なコードを参考までに共有します...

CSSは座席選択効果を実現するためにautoflow属性を使用する

1. 自動フロー属性、要素コンテンツの長さと幅が要素自体の長さと幅を超える場合、スクロールバーが表示...

get メソッドによる HTML フォームの値転送の例

google.htmlインターフェースは図の通りですコードは図のとおりです: (比較的シンプルで、入...

Vue+swiperでタイムライン効果を実現

この記事では、タイムライン効果を実現するためのvue+swiperの具体的なコードを参考までに共有し...

MySQL ステートメントの配置と概要の紹介

SQL (Structured Query Language) ステートメント、つまり構造化クエリ言...

Vueはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機機能を実現するためのVueの具体的なコードを紹介します。具体的...

Dockerはコンテナを通じてイメージを生成し、詳細にDockerCommitを送信します

目次ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを...

Iframe 適応高さコードに関する 3 つの議論

B/S システム インターフェースを構築する場合、メイン ページ index.html 内に他のペー...

表に斜めヘッダー効果を出す5つの方法

誰もがテーブルをよく知っているはずです。コード内でよく見かけます。テーブルにスラッシュ ヘッダーを追...

Dockerコンテナの中国語言語パックの設定の問題を解決する

Dockerでdocker search centosを使用する場合docker pull dock...

qt.qpa.plugin の問題を解決: Ubuntu 18.04 の Qt で Qt プラットフォーム プラグイン「xcb」をロードできませんでした

問題の説明Qt5.15.0 をインストールした後、テスト ケースを実行するとエラーが表示されます。 ...

SQL における distinct と row_number() over() の違いと使い方

1 はじめにデータベース内のデータを操作するための SQL 文を記述するときに、いくつかの不快な問題...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...