一、首先需要安裝必要的庫(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”
五、至此,安裝成功。