很多情况下,我们不需要了解事物的详情,只要知道这样做有效就够了,这种情况下我们就会用到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
再加两个头部,然后就可以跨域了,具体原因不解释,安全责任自负。