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主机。