nginx静态资源
1.靜態(tài)資源類型
| 類型 | 種類 |
| 瀏覽器端渲染 | HTML,CSS,JS? ? ? ?? |
| 圖片 | GPEG,GIF,PNG |
| 視頻 | FLV? ? ? ? ? MP4 |
| 文件 | TXT? ? ? ? ?任意下載文件 |
2.靜態(tài)資源優(yōu)化語法(當(dāng)服務(wù)器出現(xiàn)錯誤時候開始優(yōu)化)
| sndfile? ? ? ? no|off | 文件高效讀取 |
| nopush? ? ? ? no|off | 提高網(wǎng)絡(luò)傳輸效率 |
| tcp_nodelay? ? ? ? no|off | 在keepalive連接下,提高網(wǎng)絡(luò)的實時性 |
| gizp? ? ? ? no|off | 客戶機與服務(wù)器傳輸過程中,都把包壓縮完成再進(jìn)行發(fā)送一起搭配這幾個進(jìn)行使用 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
? ? ? ? 進(jìn)行測試curl -i http://192.168.100.*/1.jpg? 就會出現(xiàn)包的大小,在html中l(wèi)s -lh ,對比包是否被壓縮了
3.服務(wù)器自動進(jìn)行緩存:exprice?
location / {charset utf-8,gbk; #exprice 1d 1d 就是一天 1h 就是1小時 一般應(yīng)該是7天root html;index index.html index.htm;}4. 靜態(tài)資源跨域訪問:
(1)跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。
(2)所謂同源是指,域名,協(xié)議,端口均相同。
4.2瀏覽器為什么禁止跨域? ? ? (1)不安全,容易出現(xiàn)CSRF攻擊 #crsf是跨站請求偽造 4.3實現(xiàn)跨域代理的方法 ???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.靜態(tài)資源防盜鏈
6.1什么是盜鏈? ? ?(1)盜鏈指的是在自己的界面展示不在自己服務(wù)器上的內(nèi)容,通過技術(shù)手段獲得他人服務(wù)器上的資源地址,繞過別人資源展示頁面,在自己頁面向用戶提供此內(nèi)容,從而減輕自己服務(wù)器的負(fù)擔(dān),因此真實的空間和流量來自別人的服務(wù)器 ? ?(2)防盜鏈設(shè)置思路:區(qū)別哪些請求是非正常用戶請求。 6.2如何配置nginx防盜鏈? ? ? ? ? 實驗材料:兩個圖片,兩臺服務(wù)器,和主機的hosts文件 ? ? ? ? 實驗要求:兩臺服務(wù)器都安裝了nginx,兩臺都是對外服務(wù),一臺是為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) {? ? ?#表示對這些后綴進(jìn)行防盜鏈root???html;valid_referers none blocked??*.benet.com benet.com;? ? ? ? #允許訪問的域名if??($invalid_referer){? ? ?#if判斷rewrite ^/ http://www.accp.com/2.gif; ? ? ? ? ? #防盜鏈跳轉(zhuǎn)的頁面}} ?
(2)在benet的hosts文件里添加域名(www.benet.com)和本地地址
[root@localhost ~]# vim /etc/hosts127.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的網(wǎng)站都可以訪問此圖片,但accp訪問的時候會被benet的if判斷調(diào)配到其他圖片
| 可能出現(xiàn)的問題: |
| accp文件指向域名和圖片一定要加協(xié)議:http:// |
| 被指定的圖片后綴不可以與location后的協(xié)議后綴重合,要不就會被加入防盜鏈 |
| 瀏覽器最好使用win7,win10的話一定要清理緩存 |
| accp的hosts文件要指向www.benet.com |
總結(jié)
- 上一篇: 软著申请60页的源代码文档在线生成工具
- 下一篇: vue实现一个鼠标滑动预览视频封面组件(