nginx编译和一些moudle的测试

来源:互联网 发布:数控加工中心模拟软件 编辑:程序博客网 时间:2024/05/16 05:07

一、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把这个库文件中的绝对路径写进去

ldconfig是一个程序,它的作用就是将/etc/ld.so.conf中的路径缓存到/etc/ld.so.cache中,因此在安装完一些库文件或者修改ld.so.conf增加新的路径后需要运行一下/sbin/ldconfig使所有的库文件都缓存都ld.so.cache中,如果没有运行/sbin/ldconfig,即使库文件就在/etc/ld.so.conf中,也是不会被使用的,结果在编译的过程中同样报错缺少XXX库!
最后可以通过一条命令来检查是否成功编译:echo  $?,为0表示编译通过】

3、nginx重新编译后,在nginx上添加了如下配置:


4、重启nginx后访问:


二、ngx_http_auth_basic_module

1、ngx_http_auth_basic_module模块实现访问限制,只有输入正确的用户密码才允许访问web内容:

nginx basic auth指令

语法:     auth_basic string | off;
默认值:     auth_basic off;
配置段:     http, server, location, limit_except

2、尝试在在nginx上配置:


这里要注意auth_basic_user_file的路径,否则会报403在自己测试的时候就因为这个找了好久原因。


3、配置密码:根据官网的提示,密码需通过crypt函数进行加密,如下:


4、测试效果:





0 0