Nginx--配置文件2

1、默认网站

当Nginx配置文件中有且只有一个server时,该server即为nginx的默认网站。
在这里插入图片描述
所有发给Nginx服务器的请求均由该server进行处理。

2、访问控制

创建page目录与文件

mkdir /usr/local/nginx/html/page
echo This is My Page! > /usr/local/nginx/html/page/index.html

编辑配置文件

location /page{
		allow 127.0.0.1;   //只允许访问IP
		deny all;  //拒绝所有访问
}

重新加载配置文件

killall -s HUP nginx
elinks http://ip/page   //拒绝访问

拒绝访问

elinks http://127.0.0.1/page  //允许访问

在这里插入图片描述
也可以将返回路径进行更改,只需在结尾加上return

location /page{
		allow 127.0.0.1;  
		deny all;  
		return http://www.taobao.com
}

重新加载配置文件后访问返回如下
在这里插入图片描述
密码验证


在这里插入图片描述

location /page {
	auth_basic "Please input a password!";
	auth_basic_user_file /etc/nginx/htpasswd;
	}

在这里插入图片描述
如果需要关闭可以使用auth_basic off;或者直接将这两段注释掉

htpasswd命令扩展

htpasswd(选项)(参数) 
选项 
-c:创建一个加密文件; 
-m:默认采用MD5算法对密码进行加密; 
-d:采用CRYPT算法对密码进行加密; 
-p:不对密码进行进行加密,即明文密码; 
-s:采用SHA算法对密码进行加密; 
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码; 
-D:删除指定的用户

3、日志格式

Nginx访问日志主要由两个参数进行控制:
log_format 用来定义日志的格式。支持定义多种日志格式,取不同的名字即可
access_log 用来指定日志文件的路径以及何种日志格式进行日志记录
参数如下:

$remote_addr:远程IP;
$remote_user:远程用户;
$stime_local:时间;
$request:用来记录请求的url与http协议;
$status:用来记录请求状态;成功是200;
$body_bytes_sent:记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
$http_x_forwarded_for:访问用户的真实 IP 地址;

在这里插入图片描述
日志压缩,需要zlib支持,yum安装默认不支持,源码编译安装默认是支持的

access_log  logs/access.log.gz  main gzip;

为保障输出日志格式美观,建议使用json格式进行日志格式设置

log_format json '{"@timestamp":"$time_iso8601",'
                		'"status":"$status",'
                        '"client_ip":"$remote_addr",'
                        '"method":"$request_method",'
                        '"size":$body_bytes_sent,'
                        '"upstreamhost":"$upstream_addr",'
                        '"http_host":"$host",'
                        '"request_uri":"$request_uri",'                
                        '"xff":"$http_x_forwarded_for",'                
                        '"referrer":"$http_referer",'                
                        '"agent":"$http_user_agent"}';

4、状态查看

stub_status,该模块可以 输出nginx的基本状态信息。

	location = /status {    
		stub_status;    
		allow   192.168.75.130;    
		deny    all; 
	}
Active connections:当前状态,活动状态的连接数 
accepts:统计总值,已经接受的客户端请求的总数 
handled:统计总值,已经处理完成的客户端请求的总数 
requests:统计总值,客户端发来的总的请求数 
Reading:当前状态,正在读取客户端请求报文首部的连接的连接数 
Writing:当前状态,正在向客户端发送响应报文过程中的连接数 
Waiting:当前状态,正在等待客户端发出请求的空闲连接数

5、防盗链设置

referer 模块可以进行防盗链设置。
盗链的含义是网站内容本身不在自己公司的服务器上,而通过技术手段,直接在调用其他公司的服务器 网站数据,而向最终用户提供此内容。

配置nginx防盗链:

location ~* \.(gif|jpg|png|swf|flv)$ {
                valid_referers none blocked  cluo.net  *.meixi.net;                
                root   /usr/share/nginx/html;                
                if ($invalid_referer) {
                                        return 403;                        
                                        }
                }
valid_referers 表示合法的referers设置 
none: 表示没有referers,直接通过浏览器或者其他工具访问。 
blocked: 表示有referers,但是被代理服务器或者防火墙隐藏; 
lutixia.net: 表示通过cluo.net访问的referers; 
*.jfedu.net:  表示通过*.meixi.net访问的referers,*表示任意host主机。
发布了34 篇原创文章 · 获赞 1 · 访问量 534

猜你喜欢

转载自blog.csdn.net/weixin_42440154/article/details/95510872