静态资源web服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38004619/article/details/79082025

静态资源web服务

一、静态资源类型(非服务器动态运行生成的文件)浏览器器端渲染:HTML、CSS、JS图片,视屏,文件。

二、静态资源服务场景CDN
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

三、浏览器缓存
浏览器缓存(Browser Caching)是为了加速浏览,浏览器在用户磁盘上对请求过的文档进行存储,当访问者再次请求这个页时, 浏览器就可以从本地磁盘显示文档,这样就可以加载浏览器缓存。

四、跨站访问
用U户登录访问了一个受信任的站点,在U用户还没有退出登录的时候,打开另外一个页面,访问了网站B。此时B网站中获取U用户cookie,有CSRF攻击代码以U用户的身份访问网站A, 发生的原因是,网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie。

五、nginx压缩配置

网页压缩
网页压缩是一项由 WEB 服务器和浏览器之间共同遵守的协议,也就是说 WEB 服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等;服务器有 Apache 和 IIS 等。
双方的协商过程如下:  
首先浏览器请求某个 URL 地址,并在请求的头 (head) 中设置属性 accept-encoding 值为 gzip, deflate,表明浏览器支持 gzip 和 deflate 这两种压缩方式(事实上 deflate 也是使用 gzip 压缩协议,下面我们会介绍二者之间的区别);

WEB 服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。

在实际的应用中我们发现压缩的比率往往在 3 到 10 倍,也就是本来 50k 大小的页面,采用压缩后实际传输的内容大小只有 5 至 15k 大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。

配置如下(位置:http,server,location)
gzip  on;  #开启gzip
gzip_min_length 1k;  #低于1kb的资源不压缩
gzip_comp_level 3; #压缩级别【1-9】,越大压缩率越高,同时消耗cpu资源也越多,建议设置在4左右。
gzip_types  text/plain  application/javascript  application/x-javascript  text/javascript  text/xml text/css;  #需要压缩哪些响应类型的资源,多个空格隔开。不建议压缩图片,下面会讲为什么。
gzip_disable "MSIE [1-6]\.";  #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip_vary on;  #是否添加“Vary: Accept-Encoding”响应头

六、nginx跨站配置

跨站访问:
参数:add_header name value [always];
默认:没有配置
位置:http,server,location

浏览器读取:Access-Control-Allow-Origin来判断

实例:
location ~ .*\.(htm|html)$ {
add_header Access-Control-Allow-Origin *;  #任何域都可以访问我的资源.
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
#expires 24h;
root  /opt/app/code;
}

七、nginx防盗链配置
有些时候,大家不想让别人调用自己的图片,一是因为个人版权的问题,再一点就是会增加服务器的负载、还会产生一些没必要的流量。其实在Nginx里面,很容易就做到防盗链的,在nginx.conf文件加入一个localtion配置项。

其实在Nginx里面,很容易就做到防盗链的,在nginx.conf文件加入一个localtion配置项。下面请看配置:

location ~ .*\.(jpg|jpeg|JPG|png|gif|icon)$ {
        valid_referers blocked www.qixing318.com qixing318.com;
        if ($invalid_referer) {
            return 404;
        }
}
gif|jpg|jpeg|….,这些是你想要防盗的文件类型,可以根据情况修改。

只需要把文中 www.qixing318.com qixing318.com 修改为你允许显示你网站图片的其他网站域名,注意中间用空格分开,而不是逗号。这样直接返回的是404页面。也可以用http://domain.com/404.jpg,显示给盗链者看到的图片,注意不要放到自己的域名上,因为防盗链的作用,那样对方是看不到的,可以上传到一些支持外联的网络相册上。

当然了,也可以设置某个目录防盗链,只需把localtion匹配的改成一个目录就可以了,比如:
location ~ ^/images/ {
valid_referers none blocked www.qixing318.com qixing318.com;
if ($invalid_referer) {
return 404;
}
#rewrite ^/ http://otherdomin.com/404.jpg;
}
这样就对images这个目录设置防盗链了。




猜你喜欢

转载自blog.csdn.net/m0_38004619/article/details/79082025