Nginx基础入门(二)Nginx日志Log,Nginx WEB模块

目录

6.Nginx日志Log

6.1日志配置 (日志模块:ngx_http_log_module)

6.2日志轮转

7.Nginx WEB模块

7.1连接状态 (stub_status_module)

7.2随机主页 (random_index_module)

7.3替换模块(sub_module)

7.4文件读取(ngx_http_core_module)

7.5文件压缩(ngx_http_gzip_module)

7.6页面缓存(ngx_http_headers_module)

7.7防盗链


6.Nginx日志Log

6.1日志配置 (日志模块:ngx_http_log_module)

简介:Nginx有非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令定义。

vim /etc/nginx/nginx.conf

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

日志格式允许包含的变量

$remote_addr #远程地址,记录客户端IP地址

$remote_user  #远程用户,记录客户端用户名称

[$time_local]   #本地时间,服务器自身时间

$request #请求,记录请求的URL和HTTP协议
$status #状态,记录请求状态

$body_bytes_sent  #发送给客户端的字节数,不包括响应头的大小

$http_referer  #记录从哪个页面链接访问过来的(超链接)
$http_user_agent  #记录客户端浏览器相关信息

$http_x_forwarded_for  #代理IP

6.2日志轮转

Nginx安装会默认启动日志轮转

rpm -ql nginx | grep log

vim /etc/logrotate.d/nginx

/var/log/nginx/*.log {
        daily      #日志文件将按天轮循。
        missingok     #在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
        rotate 52      #转储次数,超过将会删除最老的那一个
        compress      #压缩
        delaycompress      #延迟压缩,总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用
        notifempty     #空文件不轮转
        create 640 nginx adm  #以指定的权限和用户属性,创建全新的日志文件,同时logrotate也会重命名原始日志文件。
        sharedscripts  #只为整个日志组运行一次的脚本
        postrotate  #在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd进程将立即再次读取其配置并继续运行。注意:这两个关键字必须单独成行。
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

轮转语句:指令 /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status  /etc/lograte.con

7.Nginx WEB模块

7.1连接状态 (stub_status_module)

#nginx -V 2>$1 | grep stub_status (查询模块是否安装)
#vim /etc/nginx/conf.d/default.conf  (配置状态模块)
server{
    location /nginx_status{
    stub_status;
    allow all;
}
}
#systemctl restart nginx
http://192.168.172.135/nginx_status

7.2随机主页 (random_index_module)

目的:将主页设置成随机页面,是一种微调更新机制

#mkdir /app (创建主页目录)
#touch /app/{blue/html,green,html,red.html,.yellow.html} (创建多个主页)
<html>
<head>
<title>bule color</title>
</head>
<body style="background-color:blue">
<h1>blue color!</h1>
</body>
</html>
#vim /etc/nginx/conf.d/default.conf (启动随机主页)
location / {
    root /app;
    random_index on;
}
#systemctl restart nginx (刷新主页,观察变化)

7.3替换模块(sub_module)

目的:网页内容替换

#vim /etc/nginx/conf.d/default.conf
server{
    sub_filter nginx 'test' #替换模块,将nginx替换成test
    sub_filter_once on;  #单次替换,开启
    location / {
        root /usr/share/nginx/html;
        index index.html index.html;
}
}
#重启服务器,测试页面,可以看到只替换了一处

7.4文件读取(ngx_http_core_module)

语法:

Syntax: sentfile on | off;

Default: sentfile off;

Context: http,server,location,if in location

Syntax: tcp_nopush on | off;

Default: tcp_nopush off;

Context: http,server,location

Syntax: tcp_nopush on | off;

Default: tcp_nopush on;

Context: http,server,location

启用模块:

#vim /etc/nginx/conf.d/default.conf

location / video{

        sendfile on;

        tcp_nopush on;

}

#默认启动,无需验证

7.5文件压缩(ngx_http_gzip_module)

原理:启动该模块,是文件传输前进行压缩,提升传输效率

语法:

Syntax: gzip on | off;

Default: gzip off;

Context: http,server,location,if in location

Syntax: gzip_comp_level level;

Default: gzip_comp_leve 1;(1~9)

Context: http,server,location

Syntax: gzip_http_version 1.0 | 1.1;

Default: gzip_http_version 1.1;

Context: http,server,location

启用模块

(1)观察未压缩传输

        拷贝图片至网站主目录 /usr/share/nginx/html/

        拷贝tar包至网站主目录

        拷贝文本至文件主目录

        通过浏览器下载文件并观察下载后大小

(2)启用压缩功能

#vim /etc/nginx/nginx.conf
http{
gip on;
gzip_http_version 1.1; #版本
gzip_comp_level 2; #级别1-9
gzip_types text/plain application/javascript application/x-javascript text/css
application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #可以压缩的内容
gzip_static on;
}
#systemctl restart nginx

(3)观察压缩传输

        注意缓存,压缩包和图片类对象本身已经自带压缩功能,所以压缩比例较小,文本类对象在压缩试验中,压缩比例体现优越,再通过浏览器下载文件并观察下载后的大小。

7.6页面缓存(ngx_http_headers_module)

        expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求要配置expires,可以在http段中或者server段中或者location段中加入。

原理介绍:无缓存,每次访问服务器,均是全文传输。开启缓存可以加速浏览网站。

语法:

Syntax: expires [modified] time;

              expires epoch | max | off;

Default: expires off;

Context: http,server,location,if in location

开启服务器缓存模块

#vim /etc/nginx/conf.d/default.conf

        location / {

                root /usr/share/nginx/html;

                index index.html index.html;

                expires 24h;

}

#理解nginx服务器启动缓存时间,加速浏览

7.7防盗链

(1)搭建一个a.com网站

        在主页中插入图片,注意要将1.jpg图片拷贝至网站主目录

      

# vim /etc/nginx/conf.d/a.com.conf
server {
    listen 80;
    server_name a.com;
    access_log /var/log/nginx/a.log main;

    location / {
        root  /a.com;
        index index.html;
    }
}
#mkdir /a.com
#vim /a.com/index.html
<img src='1.jpg' /> #####注意注意注意:1.jpg的文件要放到a.com下

#在真机上做一下域名解析C:\Windows\System32\drivers\etc\hosts
写入192.168.172.135 a.com b.com

(2)搭建一个b.com网站

在主页中盗链A网站的图片
#vim /etc/nginx/conf.d/b.com.conf
server{
    listen 80;
    server_name b.com;
    access_log /var/log/nginx/b.log main;
	location / {
	    root /b.com;
	    index index.html;
}
}
#mkdir /b.com
#vim /b.com/index.html
<img  src='http://a.com/1.jpg' /> 
注意:在b.com下并没有1.jpg的文件

(3)访问两个网站页面,均能正常显示图片

(4)注意b.com网站的日志,日志正常/var/log/nginx/b.log

(5)注意a.com网站的日志/var/log/nginx/a.log

        日志不正常,日志莫名其妙产生了,观察referer字段,发现被盗链了

(6)启动a.com防盗链功能 

    location / {
            root /a.com;
            index index.html index.htm;

            valid_referers none blodked *.a.com;
            if($invalid_referer){
                   return 403;
    }
   }

   重启一下服务器

(7)再次访问b.com网站,盗链失败

(8)如果希望某些网站能够使用盗链资源

        模块:ngx_http_referer_module

        启用盗链

        

 location / {
    root /a.com;
    index index.html index.htm;

    valid_referers none blodked *.a.com  server_name 192.168.172.* ~tianyun ~\.google\. ~\.baidu\. b.com;
    if($invalid_referer){
    return 403;
    }
   }

(9)再次盗链,合法盗链成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值