LinuxNginx高端成长之路Linux 笔记

[Nginx]Rewrite使用、浏览器本地缓存配置及动静分离

2018-05-22  本文已影响4人  瑾兰

高性能反向代理服务器--Nginx

本文简述:rewrite使用、浏览器本地缓存配置及动静分离

个人学习笔记,如有不足,欢迎指正。 2018-5-22

一、内容

1、Rewrite的使用

2、缓存配置及Gzip配置


二、笔记
1.1)rewrite的使用

rewrite通过ngx_http_rewrite_module模块支持url重写、支持if判断,但不支持else.

rewrite功能是:使用nginx提供的全局变量或子集设置的变量,结合正则表达式和标志位实现url重写以及重定向。

rewrite只能是放在server{},location{},if{}中 ,并且只能对域名后边的除去传递的参数外的字符串起作用。

1.2)常用指令

if 空格 (条件) {设定条件进行重写}

条件语法

return指令

语法return code;

停止出来并返回指定状态码给客户端。

if($request_uri ~*\.sh){
    return 403
}

set指令

set variable value;

定义一个变量并复制,值可以是文本、变量或者文本变量混合体。

rewrite指令

语法rewrite regex replacement [flag]{last / break/ redirect 返回临时302/ permant 返回永久302}

last:停止处理后续的rewrite指令集、然后对当前重写的url在rewrite指令集上重新查找。

break:停止出来后续的rewrite指令集,并不会重新查找。

示例

rewrite匹配规则

似乎我们看到rewritelocation功能相似,都实现了跳转。在这里我们要重要强调rewritelocation本质区别。

rewrite是在同一域名内,更改获取资源的路径。

location是对一类路径做控制访问或反向代理,可以proxy_pass到其他机器。

在实际应用中rewrite也会写在location中,执行顺序是:

如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件;循环超过10次,则返回500 Internal Server Error错误


2.1)浏览器本地缓存配置及动静分离

语法expires 60s|m|h|d

示例:

2.2)Gzip压缩策略

浏览器请求-->告诉服务器当前浏览器可以致辞压缩类型-->服务端会把内容根据浏览器所所支持的压缩策略去进行压缩返回

-->浏览器拿到数据后解码;

常见的压缩方式:gzipdeflatesdch

在这里我看一下我的chrome的解压方式。

chrome解压方式.png

示例:

http {
    include                             mime.types;
    default_type                        application/octet-stream;
    sendfile                            on;
    keepalive_timeout                   65s;
        
    server {
        listen       80;
        server_name  localhost 192.*;
        
         gzip off;  #开启
         gzip_buffers 4 16k;  # 以16k为单位申请4倍的压缩使用内存 
         gzip_comp_level 4; # 压缩级别  级别越高  最大到9   越高越容易失真 同时 压缩涉及到运算 影响cpu性能
        
         gzip_min_length 500;# 压缩时 这个文件达到最小的长度不被压缩。
         gzip_types text/css text/xml application/javascript; #针对于那些类型的文件进行压缩 mime.types
        ## 浏览器缓存
        location /{
            root html;
            index index.html index.htm;
        }
        location ~ \.(png|png|js|jpg|gif|css)$ {
            root html/images;
            expires 5m;   ##静态资源缓存  缓存在浏览器中 5min中之内不去去找服务器找这个文件
            
        }
    }
    

}    

注意:

1、图片、mp3这样的二进制文件,没有必要进行压缩处理。因为这类文件压缩比很小,压缩过程会耗费CPU资源

2、太小的文件没有必要压缩,因为压缩以后会增加一些头信息,反而会当导致文件变大

3、Nginx默认只对text/html进行压缩,如果要对html之外的内容进行压缩传输,需要我们手动配置。配置类型可以参见mime.types


参考链接:
1.Nginx中文文档
2.nginx

上一篇下一篇

猜你喜欢

热点阅读