您好,登錄后才能下訂單哦!
本篇內容介紹了“Nginx怎么安裝配置Lua支持”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
默認情況下Nginx
不支持Lua
模塊,需要安裝LuaJIT
解釋器,并且重新編譯Nginx
,或者可使用國人開發的openrestry
需要的模塊:LuaJIT
,Ngx_devel
和lua-nginx-module
[root@nginx_lua ~]# yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel
2. 下載最新的luajit
和ngx_devel_kit
以及lua-nginx-module
解壓
[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
3. 解壓ngx_devel_kit
以及lua-nginx-module
[root@nginx_lua src]# tar xf v0.2.19.tar.gz [root@nginx_lua src]# tar xf v0.10.13.tar.gz
4. 編譯安裝LuaJIT
,即Lua
及時編譯器
[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 && make install
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 'text/plain'; content_by_lua 'ngx.say("hello, lua")'; } #lua文件方式 #在server 中添加一個localtion location /lua { default_type 'text/html'; 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的error.log中發現了以下錯誤日志
2022/06/09 18:31:46 [error] 24475#24475: *5 failed to load external Lua file "/root/lua/68/update_content.lua": cannot open /root/lua/68/update_content.lua: Permission denied, client: 112.4.254.104, server: localhost, request: "GET /api/update_content HTTP/1.1", host: "your host"
然后在nginx.conf中配置
user root root;
再重啟nginx即可
“Nginx怎么安裝配置Lua支持”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。