绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
nginx从入门到精通-默认网站
2019-12-04 15:31:55

默认网站

默认网站

访问控制

用户验证

日志管理

防盗链

一、默认网站

server {

listen 80;

server_name localhost;

location / {

root html;

index index.html index.htm;

#支持目录浏览

autoindex on;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

二、访问控制

location /a {

autoindex on;

allow 192.168.12.0/24;

deny all;

#基于客户端IP做过滤,符合条件的允许访问,不符合的返回404;

if ( $remote_addr !~ "192.168.12" ) {

#return 404;

return http://book.ayitula.com;

}

}

三、登陆验证

location /c {

auth_basic "登陆验证";

auth_basic_user_file /etc/nginx/htpasswd;

}

四、日志管理

Nginx访问日志主要有两个参数控制

log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)

access_log #用来指定日至文件的路径及使用的何种日志格式记录日志

access_log logs/access.log main;

log_format格式变量:

$remote_addr #记录访问网站的客户端地址

$remote_user #远程客户端用户名

$time_local #记录访问时间与时区

$request #用户的http请求起始行信息

$status #http状态码,记录请求返回的状态码,例如:200、301、404等

$body_bytes_sent #服务器发送给客户端的响应body字节数

$http_referer #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。

$http_user_agent #记录客户端访问信息,例如:浏览器、手机客户端等

$http_x_forwarded_for #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置

自定义一个json格式的访问日志

log_format main_json '{"@timestamp":"$time_local",'

'"client_ip": "$remote_addr",'

'"request": "$request",'

'"status": "$status",'

'"bytes": "$body_bytes_sent",'

'"x_forwarded": "$http_x_forwarded_for",'

'"referer": "$http_referer"'

'}';

access_log logs/access_json.log main_json;

日志截断

mv access.log access.log.0

killall -USR1 `cat master.nginx.pid`

sleep 1

gzip access.log.0

五、防盗链

location /images/ {

alias /data/images/;

valid_referers none blocked *.ayitula.com;

if ($invalid_referer) {

rewrite ^/

http://www.ayitula.com/daolian.gif;

#return 403;

}

}

分享好友

分享这个小栈给你的朋友们,一起进步吧。

凉城时光
创建时间:2019-12-04 10:57:57
朋友 我们一起聊运维
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 我没
    栈主

小栈成员

查看更多
  • unnamed personq
  • unnamed personq
  • bluetooth
  • amadan
戳我,来吐槽~