天天看點

nginx_lua_module 子產品配置

想在nginx 做一個攔截轉發的事情,剛剛開始想到的是負載均衡,發現負載均衡沒有辦法擷取到請求,根據請求頭進行進行轉發資料,然後又開始找資料,剛剛好看到一個lua腳本語言配置的nginx的環境。

做為一名躺平程式員竟然要我學習新的知識,我的天啦!!! 過程實在可怕,于是乎我變成一個拿來主義。通過各種百度 C + V 工程師終于配置好了nginx_lua 子產品

檢視自己nginx 的編譯配置

nginx -V
           

我的配置是相當簡單就一個ssl的配置。後面一系列操作到現在的lua滿配操作。

nginx_lua_module 子產品配置
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/usr/local/soft/ngx_devel_kit-0.3.0 --add-module=/usr/local/soft/lua-nginx-module-0.10.12
           

不要懷疑以下代碼全是拷貝!!! cv工程師 注意檔案路徑 這是原文連結

下載下傳相關插件

1.下載下傳安裝LuaJIT 2.1(2.0或者2.1都是支援的,官方推薦2.1):http://luajit.org/download.html

cd /usr/local/soft
wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz
tar zxf LuaJIT-2.1.0-beta2.tar.gz
cd LuaJIT-2.1.0-beta2
make PREFIX=/usr/local/luajit
make install PREFIX=/usr/local/luajit
           

2.下載下傳ngx_devel_kit(NDK)子產品 :https://github.com/simpl/ngx_devel_kit/tags

cd /usr/local/soft
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar -xzvf v0.3.0.tar.gz
           

3.下載下傳解壓lua-nginx-module

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.12.tar.gz
	tar -xzvf v0.10.12.tar.gz
           

離配置完成也就一步之遙。

重新編譯nginx

找到之前安裝的nginx 壓縮包,重新編譯一次,而我編譯的參數就是上面的 這些配置注意一下插件檔案的路徑就好了。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6 --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-ld-opt="-Wl,-rpath,/usr/local/luajit/lib" --add-module=/usr/local/soft/ngx_devel_kit-0.3.0 --add-module=/usr/local/soft/lua-nginx-module-0.10.12
           

後面的–with-ld-opt="-Wl,-rpath,[加上luaJIT安裝的路勁]",–add–module=/usr/local/sift/ngx_devel_kit-0.3.0這個是添加子產品,一共是兩個子產品。

最後執行

我總是不能一次成功

真的氣,其他人都能夠一次就安裝成功,我安裝總數操蛋要躺平的我不得不再次進行百度

錯誤1

真的是氣人,竟然還有錯誤

這個錯誤要仔細的檢視一下,我自己的的./configure 裡面的編譯檔案路徑少了一個-,導緻一直找不到 /usr/local/luajit

nginx,make: *** No rule to make target `build', needed by `default'. Stop.
           
--with-ld-opt="-Wl,-rpath,/usr/local/luajit/lib"
           

不過作為躺平的我最先還是百度,無果後再繼續。上連結

這些其實都是在我安裝nginx 的時候就已經安裝了。

錯誤2

./configure: error: ngx_http_lua_module requires the Lua library.
           

說缺少什麼依賴包,我一個躺平選手知道到錘子上連結

沒錯我就是安裝了下面那個依賴。

yum install lua-devel
           

錯誤3

真的什麼妖魔鬼怪都被我給遇上了,說的是一串C 寫的代碼 說什麼類型不對,氣的我啊。C代碼怎麼我怎麼認得,當場就給這個上面的兩個插件換了個版本。ngx_devel_kit 、 lua-nginx-module,最開始我安裝的是0.2.19 和0.10.2

/usr/local/soft/lua-nginx-module-0.10.2/src/ngx_http_lua_headers.c

沒想到還要瞎貓碰到死耗子了。

nginx_lua_module 子產品配置

重新配置nginx.conf

在nginx.conf 測試一下能不能夠加入lua代碼

events {
	worker_connections  1024;
}
http { 

    include       mime.types;
    default_type  application/octet-stream;

   
	server {
		listen  8080;
		server_name 域名/或者ip;
		location /test {
			 	default_type 'text/plain';
        	## lua 語言執行階段 往用戶端輸出
        	content_by_lua_block {
                ngx.say('hello world');
        	}		
		}
    }
}
           

儲存檔案後重新開機nginx 服務

nginx_lua_module 子產品配置

繼續閱讀