nginx:默认网站 访问控制 登录验证 日志管理 防盗链

Posted flag_HW

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx:默认网站 访问控制 登录验证 日志管理 防盗链相关的知识,希望对你有一定的参考价值。

默认网站

 

当nginx配置文件中http或者https下面只有一个server时候,这个server就是该nginx的默认网站。所有请求该server监听端口的请求都转给该server。

 

访问控制

配置文件server的子配置项location是配置nginx访问目录的,对于访问控制需要的目录可以单独建立location;用法如下:下面配置表示源ip是182.168.0.0/16网段以及源ip是127.0.0.1的请求才会响应,我的windows访问虚拟机使用的是192.168.43.1作为源地址,逐条规则匹配会匹配到deny all这一条拒绝,访问效果如下。

location /a {
allow 182.168.0.0/16;
allow 127.0.0.1;
deny all;
}

 

使用下面location配置时候就可以正常访问了

location /a {
allow 192.168.43.1;
allow 182.168.0.0/16;
allow 127.0.0.1;
deny all;
}

 

 

登录验证 

对于某些资源需要特定外部客户访问,可以使用用户名密码来控制访问权限。这里可以使用nginx的登录验证功能来实现,下面就如何使用该功能进行详细说明

  • 本地生成预置的用户名密码:

如没有该命令使用yum install -y httpd-tools

htpasswd -c /etc/nginx/htpasswd #创建保存用户名密码的文件,如果提示 just not work on this platform可以使用touch直接创建文件
htpasswd -m /etc/nginx/htpasswd username #创建username的用户,根据提示输入密码
[root@localhost nginx]# htpasswd -m /etc/my_nginx/htpasswd test
New password:
Re-type new password:
Adding password for user test

 

  • 需要启用登录验证的location启用登录验证

启用登录验证后访问对应资源效果如下截图;再次输入上一步的用户名密码就可以访问对应资源了

location /b {
#auth banner
auth_basic "login auth test";
#username passwd file
auth_basic_user_file /etc/nginx/htpasswd;
}

 

 

 

 

日志管理

这里的日志管理是指访问日志的管理,nginx有全局默认日志格式;对于全局默认日志格式可以查看“nginx(一)”中的内容。对于不同server可以自定义该server的日志存储路径以及日志格式,下面详细说明如何使用该功能。

http {
include mime.types;
default_type application/octet-stream;

#log_format main \'$remote_addr - $remote_user [$time_local] "$request" \'
# \'$status $body_bytes_sent "$http_referer" \'
# \'"$http_user_agent" "$http_x_forwarded_for"\';

#自定义的日志格式,日志格式名称为test,日志内容以字符串[test_log]开头
log_format test \'"[test_log]"_$remote_addr - $remote_user [$time_local] "$request" \'
\'$status $body_bytes_sent "$http_referer" \';
#access_log logs/access.log main;

server {
listen 80;
server_name localhost;
#charset koi8-r;
#该server的访问日志存储在nginx安装路径下logs/test.access.log文件 使用日志格式为test
access_log logs/test.access.log test;

 

查看对应的日志

 

 

防盗链

什么是盗链:盗链就是用户请求A网站,A网站将请求直接转给B网站,使用其它网站的资源。盗链请求相比普通请求在请求头中有包含referer字段,可以使用该字段来识别请求是否为盗链请求。下面就开启防盗链功能进行说明。

只允许请求头referer为none blocked *.my_test_web.com进行访问,如果referer字段不为空则返回403

location /c {
valid_referers none blocked *.my_test_web.com;
if ($invalid_referer) {
return 403;
}
}

以上是关于nginx:默认网站 访问控制 登录验证 日志管理 防盗链的主要内容,如果未能解决你的问题,请参考以下文章

默认网站

Nginx 访问日志配置

Linux进阶之给nginx设置登录用户验证

kibana安全——设置访问账号密码

手把手教您用 ELK 分析 Nginx 日志

Nginx网站服务