您好,登錄后才能下訂單哦!
博文大綱:
1)靜態資源類型
2)靜態資源場景
3)靜態資源配置語法
4)靜態資源文件壓縮
5)靜態資源瀏覽器緩存
6)靜態資源防盜鏈
Nginx作為靜態資源web服務器部署配置,傳輸非常的高效,常常用于靜態資源處理、請求、動靜分離!
非服務器動態運行生成的文件屬于靜態資源!
類型 | 種類 |
---|---|
瀏覽器端渲染 | HTML、CSS、JS |
圖片 | JPEG、GIF、PNG |
視頻 | FLV、MP4 |
文件 | TXT、任意下載文件 |
靜態資源傳輸延遲最小化!
如圖:
Syntax:sendfile on | off ;
Default:sendfile off ;
Context:http、server、location、if in location ;
Syntax:tcp_nopush on | off ;
Default:tcp_nopush off ;
Context:http、server、location ;
作用: sendfile開啟情況下, 提??絡包的'傳輸效率';
Syntax: tcp_nodelay on | off ;
Default: tcp_nodelay on ;
Context:http, server, location ;
作?: 在keepalive連接下,提??絡的傳輸‘實時性’;
Nginx 將響應報?發送?客戶端之前可以啟?壓縮功能,這能夠有效地節約帶寬,并提?響應?客戶端的速度。
Syntax: gzip on | off ;
Default: gzip off ;
Context: http, server, location, if in location ;
作?:傳輸壓縮;
Syntax: gzip_comp_level level ;
Default: gzip_comp_level 1 ;
Context: http, server, location ;
作?:壓縮本身?較耗費服務端性能 ;
Syntax: gzip_http_version 1.0 | 1.1 ;
Default: gzip_http_version 1.1 ;
Context: http, server, location ;
作?: 壓縮使?在http哪個協議, 主流版本1.1 ;
Syntax: gzip_static on | off | always ;
Default: gzip_static off ;
Context: http, server, location ;
作?: 預讀gzip功能 ;
[root@nginx ~]# mkdir -p /soft/code/images
[root@nginx ~]# vim /etc/nginx/conf.d/static_server.conf
server {
listen 80;
server_name 192.168.1.10;
sendfile on;
access_log /var/log/nginx/static_access.log main;
location ~ .*\.(jpg|gif|png)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/json application/x-javascript app lication/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png;
root /soft/code/images;
}
}
[root@nginx ~]# nginx -t
[root@nginx ~]# nginx -s reload
由于圖片的壓縮效果不是太好,所以這里只附上配置!
[root@nginx ~]# mkdir -p /soft/code/doc
[root@nginx ~]# vim /etc/nginx/conf.d/static_server.conf
server {
listen 80;
server_name 192.168.1.10;
sendfile on;
access_log /var/log/nginx/static_access.log main;
location ~ .*\.(txt|xml)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/json application/x-javascript app lication/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png;
root /soft/code/doc;
}
}
[root@nginx ~]# nginx -t
[root@nginx ~]# nginx -s reload
HTTP協議定義的緩存機制(如: Expires; Cache-control 等)
1)瀏覽器無緩存
瀏覽器請求——>無緩存——>請求web服務器——>請求響應——>呈現
2)瀏覽器有緩存
瀏覽器請求->有緩存->校驗過期->是否有更新->呈現
校驗是否過期 Expires HTTP1.0, Cache-Control(max-age) HTTP1.1
協議中Etag頭信息校驗 Etag ()
Last-Modified頭信息校驗 Last-Modified (具體時間)
Syntax: expires [modified] time ;
Default: expires off ;
Context: http, server, location, if in location ;
作?: 添加Cache-Control Expires頭 ;
[root@nginx conf.d]# vim static_server.conf
server {
listen 80;
server_name 192.168.1.10;
sendfile on;
access_log /var/log/nginx/static_access.log main;
location ~ .*\.(txt|js|css|html)$ {
root /soft/code/doc;
expires 1h;
}
location ~ .*\.(jpg|gif|png)$ {
root /soft/code/images;
expires 7d;
}
}
[root@nginx conf.d]# nginx -t
[root@nginx conf.d]# nginx -s reload
瀏覽器測試效果:
[root@nginx conf.d]# vim static_server.conf
server {
listen 80;
server_name 192.168.1.10;
sendfile on;
access_log /var/log/nginx/static_access.log main;
location ~ .*\.(txt|js|css|html)$ {
root /soft/code/doc;
add_header Cache-Control no-store;
add_header Pragma no-cache;
}
location ~ .*\.(jpg|gif|png)$ {
root /soft/code/images;
expires 7d;
}
}
[root@nginx conf.d]# nginx -t
[root@nginx conf.d]# nginx -s reload
瀏覽器測試效果:
盜鏈指的是在??的界?展示不在??服務器上的內容,通過技術?段獲得他?服務器的資源地址,繞過別?資源展示??,在????向?戶提供此內容,從?減輕??服務器的負擔,因為真實的空間和流量來?別?服務器;
防盜鏈設置思路: 區別哪些請求是?正常?戶請求;
基于http_refer 防盜鏈配置模塊:
Syntax: valid_referers none | blocked | server_names | string ...;
Default: —
Context: server, location
另一臺nginx服務器(初始的情況),編寫html文件:
[root@nginx02 conf.d]# vim /usr/share/nginx/html/dl.html
<html>
<head>
<meta charset="utf-8">
<title>pachong</title>
</head>
<body >
<img src="http://192.168.1.10/test.jpg">
</body>
</html>
[root@nginx02 conf.d]# nginx -t
[root@nginx02 conf.d]# nginx -s reload
第一臺服務正常訪問:
第二胎服務器盜用第一臺服務器的圖片:
[root@nginx conf.d]# vim static.conf
server {
listen 80;
server_name 192.168.1.10;
valid_referers none blocked 192.168.1.10;
location ~ .*\.(jpg|gif|png)$ {
if ($invalid_referer) {
return 403;
break;
}
root /soft/code/images;
}
}
[root@nginx conf.d]# nginx -t
[root@nginx conf.d]# nginx -s reload
再次訪問第二臺服務器:
——————————本文到此結束,感謝閱讀————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。