(1)由于lua-upstream-nginx-module是使用Lua脚本对Nginx进行扩展,因此必须安装Lua解释器。LuaJIT是Lua语言的即时编译器,效率更高。
$ wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz $ tar zxvf LuaJIT-2.0.4.tar.gz $ cd LuaJIT-2.0.4 $ make $ make install $ export LUAJIT_LIB=/usr/local/lib $ export LUAJIT_INC=/usr/local/include/luajit-2.0 $ rm /usr/local/lib/libluajit-5.1.so* $ cd ..
导出环境变量LUAJIT_LIB和LUAJIT_INC是为了后续编译lua-nginx-module模块使用。删除libluajit的所有动态链接库是为了保证后续编译时是静态链接,否则默认为动态链接。
(2)准备好Lua环境后,接下来下载Nginx的Lua模块lua-nginx-module、Nginx开发包ngx_devel_kit、Nginx upstreamLua模块lua-upstream-nginx-module、pcre库和openssl库、Nginx源码。解压后的文件列表如下:
./lua-nginx-module-0.10.5 ./lua-upstream-nginx-module-0.05 ./nginx-1.10.1 ./ngx_devel_kit-0.3.0 ./openssl-OpenSSL_1_0_1t ./pcre-8.38
执行命令编译Nginx:
$ cd nginx-1.10.1 $ ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=root --group=root --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-pcre=../pcre-8.38 --with-openssl=../openssl-OpenSSL_1_0_1t --add-module=../ngx_devel_kit-0.3.0 --add-module=../lua-nginx-module-0.10.5 --add-module=../lua-upstream-nginx-module-0.05 $ make && make install
(3) 安装完毕后,Nginx的配置文件为/etc/nginx/nginx.conf,可执行文件为/usr/sbin/nginx。执行Nginx启动命令:
$ nginx
访问:8080即可看到Nginx主页。
(4) 添加Lua测试链接,测试Lua模块是否正常工作。
location /lua { set $test "hello, world."; content_by_lua ' ngx.header.content_type = "text/plain"; ngx.say(ngx.var.test); '; }
更新Nginx配置:
$ nginx -s reload
访问:8080/lua即可看到”hello,world.”。