Nginx 几个模块status,access ,refere使用

1、status
用来显示状态。默认为enable,可以通过以下命令查找status模块名。源码安装nginx编译时加上这个模块,这个功能才会存在,即: --with-http_stub_status_module

[root@k8smaster nginx-1.16.0]# ./configure  --help|grep status
  --with-http_stub_status_module     enable ngx_http_stub_status_module
[root@k8smaster nginx-1.16.0]# 

配置nginx配置文件,显示web服务器状态,可以在http server 或localtion下启用status,如下:

        location /status {
            root html;
            stub_status;
            index index.html index.htm;
        }

重启服务后,浏览时会显示状态信息,如下图:
Nginx 几个模块status,access ,refere使用_第1张图片
一般这个状态只要网站运维人员知道就可以了,不需要其他访问到。怎样才能拒绝其他主机访问这个呢?这就需要使用nginx另一个功能:access

2、access
access是访问控制,
注意:默认功能是disable,即预编译时,如果增加了这个功能,则是没有启动访问控制功能,是被禁用的,如果编译时没有增加,才会启用这个功能。

[root@k8smaster nginx-1.16.0]# ./configure  --help|grep access
  --without-http_access_module       disable ngx_http_access_module

设定上面的status只允许本机可以查看,其他主机均被拒绝。
nginx配置文件里只需要设定:allow 本机ip deny all即可。

        location /status {
            root html;
            stub_status;
            allow 192.168.68.127;
            deny all;
            index index.html index.htm;
        }

显示结果:
其他主机访问,显示被拒绝,如下:
Nginx 几个模块status,access ,refere使用_第2张图片
本机访问,由于本机是linux系统,通过curl访问,显示可以访问到,下如:
Nginx 几个模块status,access ,refere使用_第3张图片
3、referer
使用这个模块,可以设定防盗链。
什么是防盗链?顾名思意就是,浏览的内容并不是自己本站的本身内容,是引用其他网站的资料。如果不想让别人的web服务引用自己的网站资料,可以通过referer功能设定防盗链。比如,设定,浏览到图片时,出现图裂。
举例:
在192.168.68.127服务器上,增加一个vim.gif图片,本机访问可以显示到这张练习vim命令的图片。Nginx 几个模块status,access ,refere使用_第4张图片
现在在192.168.68.129服务器上,增加一个测试页,用来引用192.168.68.127上的这张图片,浏览192.168.68.129这台服务器测试页,可以打开192.168.68.127上设定的图片。

vim test.html

welcome to nginx

Nginx 几个模块status,access ,refere使用_第5张图片
现在,把192.168.68.127 Web服务器上设定防盗链

        location ~* \.(gif|jpg|png|swf)${
        valid_referers 192.168.68.127;
        root /usr/local/nginx/html
        if ($invalid_referer) {
        return 403;
        }
        }

nginx服务reload后,再打开192.168.68.129上的测试页时,可以看到图片无法再被打开,同时,图片出现图裂
Nginx 几个模块status,access ,refere使用_第6张图片
这个可以很好预防别人来调取自己web服务上的资源。

nginx功能非常强大,功能模块也非常多,这里只演示了以上三种。
nginx官网中有对各模块使用详细介绍:http://nginx.org/en/docs/ 。

你可能感兴趣的:(nginx,linux)