欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Nginx静态资源web服务

程序员文章站 2022-04-15 19:04:53
配置语法:文件读取Syntax: sendfile on|off;Default: sendfile off;Context: http,server,location,if in locationtcp_nopush(不是着急的发送给客户端)作用:sendfile开启的情况下,提高网络包的传输效率。解释:比如一个发快递的场景,如果有10个包裹,发10次,就要叫10次快递员来发送。那么可以把10个包裹整理到一起,一次性发送出去。Syntax: tcp_nopush on|off;...

配置语法:

  1. 文件读取

    Syntax: sendfile on|off;
    Default: sendfile off;
    Context: http,server,location,if in location
    
  2. tcp_nopush(不是着急的发送给客户端)

    作用:sendfile开启的情况下,提高网络包的传输效率。

    解释:比如一个发快递的场景,如果有10个包裹,发10次,就要叫10次快递员来发送。那么可以把10个包裹整理到一起,一次性发送出去。

    Syntax: tcp_nopush on|off;
    Default: tcp_nopush off;
    Context: http,server,location
    
  3. tcp_nodelay(与上一个对应,着急发送)

    作用:keepalive(长连接)连接下,提高网络包的传输实时性。

    解释:数据包尽量不要等待,实时的发送出去。

    Syntax: tcp_nodelay on|off;
    Default: tcp_nodelay off;
    Context: http,server,location
    
  4. 压缩

    作用:压缩传输

    Syntax: gzip on|off;
    Default: gzip off;
    Context: http,server,location,if in location
    

    压缩比配置

    Syntax: gzip_comp_level level;
    # 越大,压缩越小。(会耗费服务器资源)
    Default: gzip_comp_level 1;
    Context: http,server,location
    

    gzip版本配置

    Syntax: gzip_http_version 1.0|1.1;
    Default: gzip_http_version 1.1;
    Context: http,server,location
    
  5. 扩展

    1. http_gzip_static_module — 预读gzip功能(会先查找有无同名的gz文件存在)
    2. http_gunzip_module — 应用支持gunzip的压缩方式(有的浏览器不支持gz)

示例:

location ~ .*\.(txt|xml)$ {
    gzip on;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    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;
    root /opt/app/code/doc;
}

location ~ ^/download {
    gzip_static on;			#预读gzip功能,先gzip压缩
    tcp_nopush on;
    root /opt/app/code;
}
  1. 静态资源浏览器缓存配置语法 — expires

原理:添加http的Cache-Control、Expires头

Syntax: expires [modified] time;
		expires epoch | max| off;
Default: expires off;
Context: http,server,location,if in location
  1. nginx开启跨站访问(也就是解决跨域问题)

    原理:浏览器默认是不允许一个网站跨站访问另一个网站的,浏览器会判断 头信息:Access-Control-Allow-Origin

    Syntax: add_header name value [always];  	#name=Access-Control-Allow-Origin
    Default:
    Context: http,server,location,if in location
    
    
    #示例
    add_header Access-Control-Allow-Origin https://www.abc.com	#只允许abc这个跨站访问
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS
    
  2. 简单防盗链(防止资源被盗用)

    http_referer:上一次页面的url地址,第一次打开是没有referer信息的。

    Syntax: valid_referers none | blocked | server_names | string...;
    Default:
    Context: server,location
    
    #示例
    #没有referers信息、没有协议信息的请求、ip。(也可使用正则匹配)
    valid_referers none blocked 192.168.122.111;
    if ($invalid_referer) {
        retrun 403;
    }
    

本文地址:https://blog.csdn.net/Pasiyu/article/details/107598808

相关标签: Nginx