Nginx静态资源Web服务

摘要:
1.原理2.静态资源类型3.静态资源服务场景CDN配置语法1.配置语法,读取文件语法:sendfileon|off;默认值:sendfileoff上下文:http,server,location,ifnlocation:--带有文件aio异步文件读取2.配置语法tcp_nopush语法:tcp_nophson|off;默认值:tcp

1.原理

Nginx静态资源Web服务第1张Nginx静态资源Web服务第2张

2.静态资源类型

Nginx静态资源Web服务第3张Nginx静态资源Web服务第2张

3.静态资源服务场景-CDN

Nginx静态资源Web服务第5张Nginx静态资源Web服务第2张

配置语法

1.配置语法,文件读取

Syntax:sendfile on|off;

Default:sendfile off;

Context:http,server,location,if in location

引读:--with-file-aio 异步文件读取

2.配置语法-tcp_nopush

Syntax:tcp_nopush on | off;

Default:tcp_nopush off;

Context:http,server,location

作用:sendfile开启的情况下,提高网络包的传输效率,将多个文件,一次传输

3.配置语法-tcp_nodelay

Syntax:tcp_nodelay on | off;

Default:tcp_nodelay on;

Context:http,server,location

作用:keepalive连接下,提高网络包的传输实时性,与上个语法的作用相反

4.配置语法-压缩

Syntax:gzip on | off;

Default:gzip off;

Context:http,server,location,if in location

作用:压缩传输

Nginx静态资源Web服务第7张Nginx静态资源Web服务第2张

5.配置语法-压缩比率

Syntax:gzip_comp_level level;

Default:gzip_comp_level 1;

Context:http,server,location

6.配置语法-压缩http协议的版本

Syntax:gzip_http_version 1.0 | 1.1;

Default:gzip_http_version 1.1;

Context:http,server,location

7.扩展Nginx压缩模块

http_gzip_static_module - 预读gzip功能  # 预先将文件压缩

http_gunzip_module - 应用支持gunzip的压缩方式   # 只用于部分浏览器不支持解压的时候才用到

演示压缩文件

将一个test.png格式的文件,放在下列目录

/opt/app/code/images


    location ~ .*.(jpg|gif|png)$ {        # 自动匹配到(jpg|gif|png)格式
        
        root /opt/app/code/images;
    }
Nginx静态资源Web服务第2张

检查语法后,重启nginx

访问192.168.96.188/test.png。此时的图片为1.1M

Nginx静态资源Web服务第10张Nginx静态资源Web服务第2张

将配置文件修改如下

server {
    listen       80;
    server_name  www.test.com;

    sendfile on;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;


    location ~ .*.(jpg|gif|png)$ {
        gzip on;                        #将压缩文件的语法打开
        gzip_http_version 1.1;            # http协议版本
        gzip_comp_level 2;            # 压缩的级别为2
        gzip_types text/plain application/javascript applicattion/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;    # 支持的格式类型
        root /opt/app/code/images;
    }


    location ~ .*.(txt|xml)$ {
        #gzip on;
        #gzip_http_version 1.1;
        #gzip_comp_level 2;
        #gzip_types text/plain application/javascript applicattion/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        root /opt/app/code/doc;
    }

    location ~ ^/download {
        #gzip_static on;
        #tcp_nopush on;
        root /opt/app/code;
    }

    location / {
        root   /opt/app/code;
        random_index on;
        #index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}
Nginx静态资源Web服务第2张

修改好以后,重启nginx

再次访问192.168.96.188/test.png

再次查看图片被压缩。

相对于图片,文件的比例压缩会更大一下

直接将10M的txt文件压缩成了72kb

Nginx静态资源Web服务第13张Nginx静态资源Web服务第2张

http_gzip_static_module - 预读gzip功能,演示

在download目录下,上传一个10M的test.img文件,目前语法是关闭

Nginx静态资源Web服务第15张Nginx静态资源Web服务第2张

使用gzip test.img压缩文件(预读压缩)

Nginx静态资源Web服务第17张Nginx静态资源Web服务第2张

这时候访问192.168.96.188/test.img。会发生报错

Nginx静态资源Web服务第19张Nginx静态资源Web服务第2张

修改配置文件,加入如下配置


    location ~ ^/download {
        gzip_static on;        # gz格式,预读文件功能开启
        tcp_nopush on;        # 提高速率
        root /opt/app/code;
    }

Nginx静态资源Web服务第2张

同样访问192.168.96.188/download/test.img,可以正常访问了

Nginx静态资源Web服务第22张Nginx静态资源Web服务第2张

免责声明:文章转载自《Nginx静态资源Web服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇QQ空间开放平台开发教程-SDK和API的使用Guava包学习--Hash下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 动态加载图片路径报错解决方法

最近遇到图片路径加载报错的问题 之前一直都是把图片放到assets的文件下的。总是报错,看到一些文章并且尝试成功了,特意记录下 首先先说明下vue-cli的assets和static的两个文件的区别,因为这对你理解后面的解决办法会有所帮助  assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img sr...

nginx配置热更新

启动 将配置文件设置好,然后执行相应的文件,启动程序。 windows 直接执行可执行文件 linux的supervisor配置(后台启动) /home/nginx/sbin/nginx -g 'daemon off;' -c /home/nginx/conf/nginx.conf -p /home/nginx -s 命令 To start nginx,...

aws 基于延迟策略配置dns故障切换

前提:由于国内访问首尔地区经常出现不稳定情况,现将请求从nginx(sz)转发到nginx(hk)再转发到首尔地区,在基于不改变nginx(seoul)的配置的前提下,引入aws的延迟策略,同时保证国内 解析出现问题时,迅速将解析切至首尔的nginx。 实现:基于aws route53 配置延迟故障切换策略 nginx(sz)配置: server {...

Nginx+Tomcat动静分离及Nginx优化

目的:nginx处理用户请求的静态页面,tomcat处理用户请求jsp页面,来实现动态分离,nginx处理静态页面效率远高于tomcat,这样一来就能更好的提高并发,处理性能。 准备软件: 下载jdk1.7:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880...

location.href和location.replace和location.reload的不同(location.replace不记录历史)

location.href iframe.location.href window.location.href      整个URL字符串(在浏览器中就是完整的地址栏) reload 方法,该方法强迫浏览器刷新当前页面。     语法: location.reload([bForceGet])                               ...

用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面

用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面 1.什么是跨域以及产生原因   跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。   跨域情况如下: url 说...