首页 > 在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_auth_request_module实录

在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_auth_request_module实录

ngx_http_auth_request_module是是nginx的一个验证模块,它允许您的nginx通过发送请求到后端服务器(一般是应用服务器,例如tomcat,或者php等)进行请求, 并且根据请求决定是验证通过或者不通过。后端返回200 验证通过, 后端返回401或者403验证不通过。



该模块默认可以开启,可以在configure时使用--with-http_auth_request_module选项来开启

下面的配置在原有模块的基础上追加方式进行

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

--with-http_auth_request_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



测试

    location /main2 {set $var main;auth_request /sub;echo "main: $var";}location /sub {set $var sub;echo "sub: $var";}
curl -v 'http://localhost:8082/main2'



gx_auth_request模块发起的“子请求”确实是与其“父请求”共享一套 Nginx 变量的值容器。这违背了主请求”以及各个“子请求”都拥有不同的变量 的值容器副本的原则,会经常导致不少难于调试的诡异bug。诸如此类的因共享而导致的不好的“副作用”,让包括 ngx_echo,ngx_lua,以及 ngx_srcache 在内的许多第三方模块都选择了禁用父子请求间的变量共享。

参考文献

[1].http://nginx.org/en/docs/http/ngx_http_auth_request_module.html

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

[3].http://www.iigrowing.cn/nginx_hou_duan_yan_zheng_mo_kuai_ngx_http_auth_request_module.html



更多相关:

  • 序言: ------------- 此文档旨在描述Android.mk文件的语法,Android.mk文件为Android NDK(原生开发)描述了你C/C++源文件。为了明白下面的内容,你必须已经阅读了docs/OVERVIEW.TXT的内容,它解释了Android.mk文件扮演的角色和用途。 概述:--------- 写...

  • 我也遇到过这个问题.这可能不是理想的方式,但它有效.我做了以下事情来解决这个问题 –sudo apt-get install python3-gdbm这为python3安装了gdbm库,但是因为apt-get和anaconda是两个独立的包管理器;这不会解决你的问题.我们主要这样做是为了获取.so共享库,我们将把它放在我们的anaco...

  • 1、去官网下载和自己系统匹配的文件:  英文网址:https://nodejs.org/en/download/  中文网址:http://nodejs.cn/download/  通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图...

  • 一、简介 LLVM LLVM(之前称为低级虚拟机Low Level Virtual Machine)是一种非常强大的编译器基础架构框架,专门为使用您喜爱的编程语言编写的程序的编译时、链接时和运行时优化而设计。LLVM 可运行于若干个不同的平台之上,它以能够生成快速运行的代码而著称。 LLVM以C++编写而成,对开发者保持开放,并...

  • Ubuntu 12.04 64bit中安装firefox 26中的flash player插件的方法 昨天, 有最新的firefox 26更新了,可是我在软件更新中无法下载到ubuntu官方源中的flash plugin,详细的情况可以参见如下网页,这个问题我一年前也遇到过,特记录下来,以备后来查阅. http://blog....

  • 问题:使用 QT 编写视频展现程序报错找不到运行时库文件 解决办法: 首先 sudo find / -name libpulse.so* 然后 sudo cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so 对于libpulse-mainloop-glib...