CentOS7安裝Nginx+Lua


一、首先需要安裝必要的庫(pcre、zlib、openssl)

    1、安裝gcc(可通過“gcc -v”查看是否已經安裝)

    GCC(GNU Compiler Collection,GNU編譯器套件)是由GNU開發的編程語言編譯器,包括C、C++、Objective-C、Fortran、Java、Ada和Go語言前端,也包括這些語言的庫(如libstdc++,libgcj等)。

sudo yum -y install gcc

    2、安裝pcre

    pcre是一個perl庫,包括perl兼容的正則表達式庫,nginx的http模塊使用pcre來解析正則表達式。

sudo yum install -y pcre pcre-devel

    3、安裝zlib

    zlib庫提供了很多種壓縮和解壓縮方式,nginx使用zlib對http包的內容進行gzip。

sudo yum install -y zlib zlib-devel

    4、安裝openssl

    openossl是一個開放源代碼的軟件庫包,nginx使用該庫以支持https協議。

sudo yum install -y openssl openssl-devel

二、安裝lua支持(LuaJIT、ngx_devel_kit、lua-nginx-module)

    1、安裝LuaJIT

    LuaJIT是Lua的即時編譯器,使用C語言編寫,兼容標准Lua 5.1。LuaJIT的運行效率比標准的Lua高出數倍(因為JIT技術),完全媲美使用C/C++代碼。

cd /usr/local  #(下載到/usr/local目錄中)
sudo wget
-c http://luajit.org/download/LuaJIT-2.0.4.tar.gz sudo tar -xzvf LuaJIT-2.0.4.tar.gz cd LuaJIT-2.0.4 sudo make install PREFIX=/usr/local/luajit

     2、下載ngx_devel_kit

    ngx_devel_kit:Nginx Devel Kit,簡稱NDK,是一種Nginx模塊,旨在擴展Nginx webserver的核心功能,可以作為其它Nginx模塊的基礎。

cd /usr/local  #(下載到/usr/local目錄中)
sudo wget
https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz sudo tar -xzvf v0.3.0.tar.gz

    3、下載lua-nginx-module

    lua-nginx-module也是一個Nginx模塊,它將Lua的功能嵌入到Nginx HTTP Server中。同時,這個模塊是OpenResty的核心組件(OpenResty是一個通過Lua擴展NGINX實現的可伸縮的Web平台)。

cd /usr/local  #(下載到/usr/local目錄中)
sudo
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gz sudo tar -xzvf v0.10.8.tar.gz

三、安裝Nginx

    1、下載nginx-1.10.3.tar.gz(某研好像裝的是1.10.2,應該差不多)

cd /usr/local  #(下載到/usr/local目錄中)
wget
http://nginx.org/download/nginx-1.10.3.tar.gz tar -xzvf nginx-1.10.3.tar.gz

    2、配置LuaJIT環境變量

su  #(切換到root用戶) (輸入root用戶Password)
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

    3、編譯、安裝(root權限下)

(上面的環境變量配置完成后就可以編譯安裝了)
cd nginx-1.10.3 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --add-module=/usr/local/ngx_devel_kit-0.3.0 --add-module=/usr/local/lua-nginx-module-0.10.8 make -j2 make install
exit #(退出root)

    注:./configure中的--with-http_***_module模塊是默認不會安裝的,需要顯式配置,詳細可參閱“http://nginx.org/en/docs/configure.html”

 四、測試驗證

    1、使用lua指令的方式。在/usr/local/nginx/conf/nginx.conf中加入如下代碼:

#在server中添加一個location
location /hello_lua { 
   default_type 'text/plain'; 
   content_by_lua 'ngx.say("hello, lua")'; 
}

    2、或者使用lua文件的方式。在/usr/local/nginx/conf/nginx.conf中加入如下代碼:

#在server中添加一個location
location /lua_file {
    default_type 'text/html';
    content_by_lua_file conf/lua/test.lua; #在nginx安裝目錄下開始
}

     然后編輯test.lua文件

ngx.say("hello, world");

    3、啟動nginx(注意有沒有報錯)

sudo ln -s /usr/local/nginx/sbin/nginx usr/sbin/nginx  #(先做一下軟連接,以便后續可以方便地執行nginx相關命令) sudo nginx

     注:如果啟動nginx報如下錯誤:

nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

    可通過以下方式解決,然后再啟動nginx:

    1)方法一:

sudo ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

    2)方法二:

sudo vi /etc/ld.so.conf.d/libc.conf
#(在libc.conf中增加如下代碼,然后保存退出)
/usr/local/luajit/lib  #(這里對應自己安裝的luajit目錄)
#(退出后執行如下命令)
sudo ldconfig

    4、http測試

        訪問“http://127.0.0.1/hello_lua”  顯示“hello, lua”
        訪問“http://127.0.0.1/lua_file”  顯示“hello, world”

五、至此,安裝成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM