echo-nginx-module
模塊能夠在Nginx中用來輸出一些信息,能夠用來實現簡單接口或者排錯。html
項目地址:https://github.com/openresty/echo-nginx-modulenginx
由於須要編譯模塊,須要有Nginx源碼。git
若是已安裝Nginx,須要查看當前安裝版本的編譯參數:github
$ /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.12.2 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module
其中configure arguments
這個參數是很是重要的,咱們在後面安裝Lua模塊的時候,須要以這個爲基礎,增長新的參數。bash
若是尚未安裝Nginx,上面能夠忽略。curl
Nginx下載頁面:http://nginx.org/en/download.html測試
這裏咱們以 nginx/1.12.2
爲例。須要獲取源碼:ui
$ cd /opt/ $ wget http://nginx.org/download/nginx-1.12.2.tar.gz $ tar -zxvf nginx-1.12.2.tar.gz
咱們下載最新穩定版(截止到2018-12-23),並解壓,不用安裝:url
$ cd /opt $ wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz $ tar zxvf v0.61.tar.gz
Nginx編譯參數配置:rest
$ cd /opt/nginx-1.12.2/ $ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --add-module=/opt/echo-nginx-module-0.61
這裏由於已經安裝了Nginx,因此這裏的參數是從Nginx -V
的輸出裏獲取的,並追加了新的參數:
--add-module=/opt/echo-nginx-module-0.61
運行上面的./configure
後進行編譯安裝:
$ make -j2 $ make install
make install
後,會覆蓋以前安裝的Nginx。
在/usr/local/nginx/conf/nginx.conf
中server
代碼塊里加入以下代碼:
location /hello { default_type 'text/plain'; return 200 'hello!'; } location /hello_echo { default_type 'text/plain'; echo "hello, echo!"; }
注意:從新編譯 Nginx
二進制,Nginx
須要中止重啓。而普通配置更新則 reload
便可:
$ kill -QUIT `cat /usr/local/nginx/logs/nginx.pid` && /usr/local/nginx/sbin/nginx
若是支持service nginx restart
,則能夠這樣從新啓動:
$ service nginx restart && /usr/local/nginx/sbin/nginx -s reload
而後curl測試:
$ curl http://127.0.0.1/hello hello! $ curl http://127.0.0.1/hello_echo hello, echo!
固然, echo-nginx-module
模塊不單單是提供echo
這麼簡單的指令,還有其它的指令,詳見:https://github.com/openresty/echo-nginx-module#content-handler-directives
echo-nginx-module
支持以動態模塊方式加載,詳見:https://github.com/openresty/echo-nginx-module#installation 。Nginx版本須要 >=1.9.11
。
$ cd /opt/nginx-1.12.2/ $ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --add-dynamic-module=/opt/echo-nginx-module-0.61 $ make -j2 $ make install
相比靜態編譯,參數--add-module
改爲了--add-dynamic-module
。
編譯成功後,會把模塊安裝在nginx/modules/
目錄。查看:
$ ls /usr/local/nginx/modules/ ngx_http_echo_module.so
接下來咱們須要在nginx.conf
配置中加入如下兩行,實現動態調用模塊:
load_module /usr/local/nginx/modules/ngx_http_echo_module.so;
注意:
load_module
指令不能放在http{}
裏面:
worker_processes 1; load_module xxx; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { }
接下來能夠按上面的 測試echo模塊 小節測試。惟一不一樣的是無需使用kill -QUIT
退出Nginx,直接使用nginx -s reload
熱重啓就好了。
一、Nginx安裝Nginx-echo模塊 - chen2013 - 博客園
http://www.cnblogs.com/chenjianxiang/p/8489055.html
二、openresty/echo-nginx-module
https://github.com/openresty/echo-nginx-module#installation
三、Nginx編譯安裝Lua - 飛鴻影~ - 博客園
http://www.javashuo.com/article/p-uyselemm-dh.html