一、ngx_http_addition_module
1、最近看了下ngx_http_addition_module模块,这个模块在响应之前或者之后追加文本内容,比如可以追加一个js或者css,可以使用这个模块来实现。于是按照官网,在nginx的配置文件添加了相应的配置,在重启nginx的时候发现,nginx在编译的时候没有编译这个模块,为了测试,自己下了个nginx源码进行编译,在编译过程中也遇到了一些问题:
2、编译:
在编译前,在./configure的时候添加了--with-http_addition_module参数:
先是出现了adding module 中的ngx_cache_purge-2.3 no found的报错:于是下载了ngx_cache_purge-2.3的包,在解压好后,在add_module中指定ngx_cache_purge-2.3的路径解决。
解决了ngx_cache_purge-2.3的问题后,又出现了the HTTP rewrite module requests the PCRE library的报错:
很明显是缺少了pcre库,用sudo yum install pcre-devel安装pcre库后重新尝试:
这次执行configure脚本没有再报错后
执行make && make install编译和安装nginx:
【make:编译,当执行make的时候,make会在当前目录下搜索Makefile(makefile)这个文本文件,而makefile里面记录了源码如何编译的详细信息
了解几个能关系到能否编译成功的文件:/etc/ld.so.conf、ldconfig
/etc/ld.so.conf,这个文件中记录的编译时使用的动态链接库的路径,默认情况下编译器只会使用/lib和/usr/lib这两个目录下的库文件,如果你安装了其他的库,那么安装完成后就需要在/etc/ld.so.conf把这个库文件中的绝对路径写进去
最后可以通过一条命令来检查是否成功编译:echo $?,为0表示编译通过】
3、nginx重新编译后,在nginx上添加了如下配置:
4、重启nginx后访问:
二、ngx_http_auth_basic_module
1、ngx_http_auth_basic_module模块实现访问限制,只有输入正确的用户密码才允许访问web内容:
语法: auth_basic string | off;
默认值: auth_basic off;
配置段: http, server, location, limit_except
2、尝试在在nginx上配置:
这里要注意auth_basic_user_file的路径,否则会报403,在自己测试的时候就因为这个找了好久原因。
3、配置密码:根据官网的提示,密码需通过crypt函数进行加密,如下:
4、测试效果: