ホームページ  >  記事  >  運用・保守  >  Nginx の Lua サポートをインストールして構成する方法

Nginx の Lua サポートをインストールして構成する方法

WBOY
WBOY転載
2023-06-02 22:01:102274ブラウズ

Nginx のインストールと構成 Lua サポート

デフォルトでは、NginxLua モジュールをサポートしていません。LuaJIT インタープリターをインストールする必要があります。 Nginx で再コンパイルするか、中国人が開発した openrestry

の必須モジュール (LuaJIT,Ngx_devel#) を使用することもできます。 ## および lua-nginx-module

1. 環境の準備

[root@nginx_lua ~]# yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel

2. 最新の

luajit および ngx_devel_kit## をダウンロードします。 # および lua -nginx-moduleUnzip<pre class="brush:bash;">[root@nginx_lua ~]# mkdir -p /soft/src [root@nginx_lua ~]# cd /soft/src/ wget https://luajit.org/download/LuaJIT-2.0.4.tar.gz wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz wget https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz</pre>3.

ngx_devel_kit

および lua-nginx-module<pre class="brush:bash;">[root@nginx_lua src]# tar xf v0.2.19.tar.gz [root@nginx_lua src]# tar xf v0.10.13.tar.gz</pre> を解凍します。 4.

LuaJIT

、つまり Luaジャストインタイム コンパイラ <pre class="brush:bash;">[root@nginx_lua src]# tar xf LuaJIT-2.0.4.tar.gz [root@nginx_lua src]# cd LuaJIT-2.0.4/ [root@nginx_lua LuaJIT-2.0.4]# make &amp;&amp; make install</pre>5 をコンパイルしてインストールします。

Nginx

## をコンパイルしてインストールします。 #

[root@nginx_lua src]# wget http://nginx.org/download/nginx-1.14.2.tar.gz
[root@nginx_lua src]# tar xf nginx-1.14.2.tar.gz
[root@nginx_lua src]# cd nginx-1.14.2
[root@nginx_lua nginx-1.14.2]# ./configure --prefix=/soft/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_dav_module --with-file-aio --with-http_dav_module --add-module=../ngx_devel_kit-0.2.19/ --add-module=../lua-nginx-module-0.10.13/
[root@nginx_lua nginx-1.14.2]# make && make install
[root@nginx_lua nginx-1.14.2]# ln -s /soft/nginx/sbin/nginx /usr/bin/nginx
[root@nginx_lua conf]# vim nginx.conf  #简单配置写nginx测试Nginx是否已经支持Lua(lua指令方式)
...
server {
 location /test_lua {
                default_type text/html;
                content_by_lua_block {
                        ngx.say("Hello Lua!") 
                }
        }
...
}
#lua指令方式
#在server 中添加一个localtion
location /hello {
            default_type &#39;text/plain&#39;;
            content_by_lua &#39;ngx.say("hello, lua")&#39;;
        }
#lua文件方式
#在server 中添加一个localtion
location /lua {
    default_type &#39;text/html&#39;;
    content_by_lua_file conf/lua/test.lua; #相对于nginx安装目录
}
#test.lua文件内容
ngx.say("hello world");
//建立软连接,如果不建立软链接,则会出现share object错误
[root@nginx_lua conf]# nginx -t
/soft/nginx/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
[root@nginx_lua conf]# 
[root@nginx_lua lib64]# ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
[root@nginx_lua lib64]# ll libluajit-5.1.so.2
lrwxrwxrwx 1 root root 33 Dec 21 20:52 libluajit-5.1.so.2 -> /usr/local/lib/libluajit-5.1.so.2
[root@nginx_lua lib64]#
#//加载lua库,加入到ld.so.conf文件(暂时不执行这一步)
#[root@nginx_lua nginx-1.14.2]# echo "/usr/local/LuaJIT/lib" >> /etc/ld.so.conf
[root@nginx_lua conf]# nginx -t
nginx: the configuration file /soft/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /soft/nginx/conf/nginx.conf test is successful
[root@nginx_lua conf]# nginx -s reload
6. Lua のインストールを正常にテストします

Nginx で lua スクリプトを設定し、URL にアクセスすると常に 404Nginx の Lua サポートをインストールして構成する方法

と入力しました。 nginx の error.log を確認すると、次のようなエラーログが見つかりました。

2022/06/09 18:31:46 [error] 24475#24475: *5 外部 Lua ファイル "/root/ のロードに失敗しました" lua/68/update_content.lua": /root/lua/68/ update_content.lua を開けません: アクセス許可が拒否されました、クライアント: 112.4.254.104、サーバー: localhost、リクエスト: "GET /api/update_content HTTP/1.1"、ホスト: 「あなたのホスト」

次に、nginx.conf で

user root root;
を構成し、nginx

を再起動します。

以上がNginx の Lua サポートをインストールして構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。