美文网首页
Nginx的进阶二

Nginx的进阶二

作者: 小狐憨憨 | 来源:发表于2020-11-19 10:05 被阅读0次

    Nginx的进阶二

    nginx的配置跨域问题

    为什么会出现跨域问题

    出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

    什么是跨域

    当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

    nginx解决跨域问题

    #设置需要跨域的指定文件
    指定请求路径带上请求头
    location /test/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET,POST';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        #设置路径文件路径
        alias /data/web/res/;
    }   
    
    #设置允许全局跨域
    server {
       ....
       #还可以添加是否携带cookie
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET,POST';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';  
    }
    

    配置静态资源防盗链

    在nginx中我们可以配置防盗链,防止别人引用我们的资源服务

    #对指定server块的全局设置
    
    #对站点验证,配置静态资源防盗链
    valid_referers ip或者域名 如:*.xioahu.com; //表示xiaohu.com的一级或者二级进来都可以引用,但是别的站点引用资源服务就会进入下面的判定框404
    #非法引入会进入下方判断
    if ($invalid_referer){
        return 404;
    }
    
    
    #可以在指定的路径设置
    location ~ .*\.(jpg|gif|png)$ {
      
            valid_referers none blocked 49.233.145.78; # 允许跳转的ip
            if ($invalid_referer) {
                 return 403;
            }
            root /opt/app/code/images;
    }
    
    
    

    nginx开启gzip压缩

    http {
      # 开启gzip
      gzip on;
    
      # 启用gzip压缩的最小文件;小于设置值的文件将不会被压缩
      gzip_min_length 1k;
    
      # gzip 压缩级别 1-10 
      #级别越大压缩越多,cpu使用比也多
      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;
    
      # 是否在http header中添加Vary: Accept-Encoding,建议开启 下图可以看到
      gzip_vary on;
    }
    

    [图片上传失败...(image-6e4f97-1605751537059)]

    相关文章

      网友评论

          本文标题:Nginx的进阶二

          本文链接:https://www.haomeiwen.com/subject/hqociktx.html