1.静态资源类型
类型 | 种类 |
浏览器端渲染 | HTML,CSS,JS |
图片 | GPEG,GIF,PNG |
视频 | FLV MP4 |
文件 | TXT 任意下载文件 |
2.静态资源优化语法(当服务器出现错误时候开始优化)
sndfile no|off | 文件高效读取 |
nopush no|off | 提高网络传输效率 |
tcp_nodelay no|off | 在keepalive连接下,提高网络的实时性 |
gizp no|off | 客户机与服务器传输过程中,都把包压缩完成再进行发送一起搭配这几个进行使用 gizp_comp_level 9; ##压缩比例有1-9这几个级别 gzip_types text/plain application/x-javascript text/css application/xml image/jpg; ##压缩的类型 |
3.http压缩的实验:
3.1配置ngixn全局配置:
location \ {
gzip on;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript text/css application/xml image/jpg;
root html;
index index.html index.htm;
}
重启文件:nginx -s reload
进行测试curl -i http://192.168.100.*/1.jpg 就会出现包的大小,在html中ls -lh ,对比包是否被压缩了
3.服务器自动进行缓存:exprice
location / {
charset utf-8,gbk;
#exprice 1d 1d 就是一天 1h 就是1小时 一般应该是7天
root html;
index index.html index.htm;
}
4. 静态资源跨域访问:
(1)跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。
(2)所谓同源是指,域名,协议,端口均相同。
4.2浏览器为什么禁止跨域?
(1)不安全,容易出现CSRF攻击 #crsf是跨站请求伪造
4.3实现跨域代理的方法
location / {
root html;
proxy_pass http://192.168.100.202;
index index.html index.htm;
add_header 'Access-Control-Allow-Origin' '*';
}
5.防止恶意绑定域名
(1.)恶意绑定是指,别人将自己自己域名绑定到了公司IP
(2.)恶意绑定的解决方法
server {
listen 80;
server_name _; ##注意,前方有个空格,请不要忘记挖坑···
return 500;
}
6.静态资源防盗链
6.1什么是盗链?
(1)盗链指的是在自己的界面展示不在自己服务器上的内容,通过技术手段获得他人服务器上的资源地址,绕过别人资源展示页面,在自己页面向用户提供此内容,从而减轻自己服务器的负担,因此真实的空间和流量来自别人的服务器
(2)防盗链设置思路:区别哪些请求是非正常用户请求。
6.2如何配置nginx防盗链?
实验材料:两个图片,两台服务器,和主机的hosts文件
实验要求:两台服务器都安装了nginx,两台都是对外服务,一台是为benet 另一台为accp,但accp是抄袭benet的图片,怎么才能让benet防止图片被盗取?
accp的配置:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.accp.com;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
##################index.html
<img src="http://www.benet.com/1.jpg" />
(1)在benet的nginx.cong中添加location配置文件
location ~* \.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|png|swf|flv|jpeg) { #表示对这些后缀进行防盗链
root html;
valid_referers none blocked *.benet.com benet.com; #允许访问的域名
if ($invalid_referer){ #if判断
rewrite ^/ http://www.accp.com/2.gif; #防盗链跳转的页面
}
}
(2)在benet的hosts文件里添加域名(www.benet.com)和本地地址
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.202 www.benet.com
(3) 在本地的C盘下的hosts文件里添加两个域名
192.168.100.202 www.benet.com
192.168.100.203 www.accp.com
开始测试······
最终效果为:只要是benet的网站都可以访问此图片,但accp访问的时候会被benet的if判断调配到其他图片
可能出现的问题: |
accp文件指向域名和图片一定要加协议:http:// |
被指定的图片后缀不可以与location后的协议后缀重合,要不就会被加入防盗链 |
浏览器最好使用win7,win10的话一定要清理缓存 |
accp的hosts文件要指向www.benet.com |