首页 > 在CentOS 6.9 x86_64的nginx 1.12.2上安装第三方模块set-misc-nginx-module实录

在CentOS 6.9 x86_64的nginx 1.12.2上安装第三方模块set-misc-nginx-module实录

set-misc-nginx-module模块是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义、JSON引述、Hexadecimal/MD5/SHA1/Base32/Base64编码与解码、随机数等等。在后面的应用中,都将会接触使用到这个模块的。该模块是由章亦春先生开发的,他开发的其他模块应用也会使用到这个模块的。充分使用nginx非阻塞模式,对性能上有极大的提高,我个人认为很有必要去弄懂弄透nginx,通过自己去动手动脑用实例来加以验证,不断的对模块参数命令加以理解,在实际环境中应用自如。

这两个模块的主页分别是

标准模块ngx_http_rewrite_module

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

第三方模块set-misc-nginx-module

ngx_set_misc - Various set_xxx directives added to nginx's rewrite module (md5/sha1, sql/json quoting, and many more)

https://github.com/openresty/set-misc-nginx-module





下载源码

cd /usr/local/src

wget https://github.com/openresty/set-misc-nginx-module/archive/v0.31.tar.gz

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz

tar zxvf v0.31.tar.gz

tar zxvf v0.3.0.tar.gz





编译安装

cd nginx-1.12.2

./configure --with-http_ssl_module

--with-pcre=/usr/local/src/pcre-8.41

--with-zlib=/usr/local/src/zlib-1.2.11

--with-openssl=/usr/local/src/openssl-1.1.0g

--with-http_stub_status_module

--add-module=/usr/local/src/ngx_cache_purge

--add-module=/usr/local/src/ngx_req_status

--add-module=/usr/local/src/echo-nginx-module

--add-module=/usr/local/src/ngx_devel_kit-0.3.0

--add-module=/usr/local/src/set-misc-nginx-module-0.31

make

make install

注意这里set-misc-nginx-module依赖ngx_devel_kit模块,且--add-module=ngx_devel_kit一定要早于--add-module=set-misc-nginx-module





配置

        location /test {echo "uri = $uri";echo "request_uri = $request_uri";echo "name: $arg_name";echo "class: $arg_class";set_unescape_uri $name $arg_name;set_unescape_uri $class $arg_class;echo "name: $name";echo "class: $class";}

更完整的nginx.conf配置参见

https://github.com/taoyunxing/github_test/blob/master/nginx.conf

测试

curl -v 'http://localhost:8082/test'

curl 'http://localhost:8082/test?a=3&b=4'

curl 'http://localhost:8082/test/hello%20world?a=3&b=4'





curl 'http://localhost:8082/test?name=Tom&class=3'

curl 'http://localhost:8082/test?name=hello%20world&class=9'

curl 'http://localhost:8082/test?NAME=Marry'

curl 'http://localhost:8082/test?Name=Jimmy'



curl 'http://localhost:8082/test?name=hello%20world&class=9'





更复杂的指令待后续继续补充





参考文献

[1].https://github.com/openresty/set-misc-nginx-module

[2].http://www.ttlsa.com/nginx/nginx_set-misc-nginx-module-module-description/

[3].https://github.com/openresty/set-misc-nginx-module#installation

[4].http://www.ttlsa.com/nginx/nginx-var-2/



更多相关:

  • ng g s services/http  app.module.ts ... @NgModule({declarations: [...],imports: [...HttpClientModule,//这个很重紧要,没有就会报错],providers: [],bootstrap: [AppComponent] }) expor...

  • 该源码包是MySQL-python-1.2.4b4.tar.gz 从2013-06-28以来一直没有更新,注意该网站可以区分访问的终端类型是Windows还是Linux之类的,从而返回的源码包格式不一样。 在CentOS上的安装方法是 http://www.cnblogs.com/jackluo/p/3559978.html...

  • ATS默认提供了对Referer头的http request的防盗链功能,主要应用于图片,对视频等会使用级别更高的防盗链功能,比如事先约定好key,采用md5或HMAC-Sha1算法加密等。 在remap.config中按如下格式设置: map_with_referer client-URL origin-server-URL re...

  • 测试大文件下载 curl -I "http://resource.tsk.erya100.com/TS/flv/TS180/5836/9.flv?t=1430796561727" 单条转发模式in per remap mode 在remap.config中添加一条 map http://resource.tsk.e...

  • 打开 build文件夹下面的webpack.base.conf.js; 找到下面这段代码,并将它注释掉: const createLintingRule = () => ({// test: /.(js|vue)$/,// loader: 'eslint-loader',// enforce: 'pre',// includ...

  • 写一个.cc文件,其中抱哈std::lock_guard以及std::thread等c++11特性,开始使用gcc编译,过程中出现如下问题 gcc test_lock.cc -o test_lock This file requires compiler and library support for the ISO C++ 201...

  • 在阅读ceph源码过程中发现部分C++语法还是不够熟悉,特此做一下笔记。 关于STL中的reserve函数的使用 reserve()是为容器预留空间,即为当前容器设定一个空间分配的阈值,但是并不会为容器直接allocate具体的空间,具体空间的分配是在创建对象时候进行分配得 以vector的reserve函数过程为例,直接看如下代码...

  • 第一种写法: 第二种写法:   转载于:https://www.cnblogs.com/w...

  • Rank() over()的用法 创建一个test表,并插入6条数据。 CREATE TABLE test (a INT,b INT,c CHAR ) INSERT INTO test VALUES(1,3,'E') INSERT INTO test VALUES(2,4,'A') INSERT INTO test VAL...

  • 1 模块简介在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块。模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写连接到python解释器的内置模块和把一些列模块组织起来的文件(文件包)。python使用模块内置模块,第三方模块以及内置模块,是pyth...

  • 简介 OpenCV是一个C++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。  OpenCV有两个Python接口,老版本的cv模块使用OpenCV内置的数据类型,新版本的cv2模块使用NumPy数组。 对于新版本的模块,可以通过下面方式导入: import cv2 而老版本的模块则通过下面方式导入: i...

  • 一. 背景 在 CMakeLists.txt 中,某模块 A 通过 add_subdirectory 引入模块 B ,模块 B 通过 add_subdirectory 引入模块 C。模块 C 里面本身就是一个开源的动态库,比如 libtask。目的想要将 C 模块打包成一个 Target ,以便在 A 模块中中使用方便。 二. 旧...

  • 一、python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include 引入math.h这个头文件,否则是无法正常进行调用的。 那么在Python中,如果要引用一些其他的函数,该怎么处理呢? 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Ja...

  •  对于一些大型的项目来说,将项目的各个模块理清并进行管理,便于后续项目的维护,使用maven管理是很方便的,它可以很好的构建模块来设计项目的整体结构,对一些小型的项目不建议使用 1、新建父maven模块(idea版本为2017.2) 选择maven类型 点击next,填写GroupId和AtifactId 点击next 确认工...