2

很多情况下,我们不需要了解事物的详情,只要知道这样做有效就够了,这种情况下我们就会用到boilerplate,中文俗称『锅炉片』。所谓锅炉片,其实就是一大段代码,你也不用管为什么这样,你只需要在用到的时候拷来拷去就行了。当然,如果你愿意钻研,非要琢磨清楚这一大段代码当中到底包含了什么意思,你也可以学到不少东西,不过不求甚解的话,也没有人指责你。

gzip压缩

        gzip on;
        gzip_min_length 1k;
        gzip_buffers 16 64k;
        gzip_http_version 1.1;
        gzip_comp_level 5;
        gzip_proxied any;
        gzip_types text/plain application/x-javascript application/javascript application/octet-stream text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/svg image/svg+xml;
        gzip_vary on;

好吧,别问我为什么,我也不知道为什么,但总之这样有效。

expire header

        location ~* \.(css|js|gif|ico|jpg|png|svg|woff|ttf|eot|woff2)$ {
            expires 365d;
        }

这段代码相对好理解,给那些图片等文件加上一个一年的有效期。但有一点要注意:一定要把root /opt/html;放在location /外面,你要放在里面,你就等着404吧。

跨域

    location /somewhere/ {
        if ($request_method=OPTIONS) {
            add_header Access-Control-Allow-Origin "$http_origin";
            add_header Access-Control-Allow-Credentials "true";
            add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
            add_header Access-Control-Allow-Headers "sitessubid,Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since";
            add_header Content-Length 0;
            add_header Content-Type text/plain;
            return 200;
        }
        if ($request_method=POST) {
            add_header Access-Control-Allow-Origin "$http_origin";
            add_header Access-Control-Allow-Credentials "true";
        }
    }

OPTIONS请求加一堆乱七八糟的头部,给POST或者GET再加两个头部,然后就可以跨域了,具体原因不解释,安全责任自负


张京
13.4k 声望4.7k 粉丝

现任北京联云天下科技有限公司技术副总裁。1994年毕业于清华大学计算机科学与技术专业;20多年软件开发及项目管理经验;历任亚洲生活网络公司CTO,摩托罗拉软件中心QSE工具经理,融信恒通技术总监,安必信软件公...