您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細(xì)介紹了Nginx靜態(tài)資源使用方法,Nginx靜態(tài)資源如何對(duì)文件進(jìn)行壓縮和添加防盜鏈,零基礎(chǔ)也能參考此文章,感興趣的小伙伴們可以參考一下。
Nginx作為靜態(tài)資源web服務(wù)器部署配置,傳輸非常的高效,常常用于靜態(tài)資源處理、請(qǐng)求、動(dòng)靜分離!
非服務(wù)器動(dòng)態(tài)運(yùn)行生成的文件屬于靜態(tài)資源!
類型 | 種類 |
---|---|
瀏覽器端渲染 | HTML、CSS、JS |
圖片 | JPEG、GIF、PNG |
視頻 | FLV、MP4 |
文件 | TXT、任意下載文件 |
靜態(tài)資源傳輸延遲最小化!
如圖:
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開啟情況下, 提??絡(luò)包的'傳輸效率';
Syntax: tcp_nodelay on | off ;
Default: tcp_nodelay on ;
Context:http, server, location ;
作?: 在keepalive連接下,提??絡(luò)的傳輸‘實(shí)時(shí)性’;
Nginx 將響應(yīng)報(bào)?發(fā)送?客戶端之前可以啟?壓縮功能,這能夠有效地節(jié)約帶寬,并提?響應(yīng)?客戶端的速度。
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 ;
作?:壓縮本身?較耗費(fèi)服務(wù)端性能 ;
Syntax: gzip_http_version 1.0 | 1.1 ;
Default: gzip_http_version 1.1 ;
Context: http, server, location ;
作?: 壓縮使?在http哪個(gè)協(xié)議, 主流版本1.1 ;
Syntax: gzip_static on | off | always ;
Default: gzip_static off ;
Context: http, server, location ;
作?: 預(yù)讀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協(xié)議定義的緩存機(jī)制(如: Expires; Cache-control 等)
1)瀏覽器無緩存
瀏覽器請(qǐng)求——>無緩存——>請(qǐng)求web服務(wù)器——>請(qǐng)求響應(yīng)——>呈現(xiàn)
2)瀏覽器有緩存
瀏覽器請(qǐng)求->有緩存->校驗(yàn)過期->是否有更新->呈現(xiàn)
校驗(yàn)是否過期 Expires HTTP1.0, Cache-Control(max-age) HTTP1.1
協(xié)議中Etag頭信息校驗(yàn) Etag ()
Last-Modified頭信息校驗(yàn) Last-Modified (具體時(shí)間)
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
瀏覽器測(cè)試效果:
[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
瀏覽器測(cè)試效果:
盜鏈指的是在??的界?展示不在??服務(wù)器上的內(nèi)容,通過技術(shù)?段獲得他?服務(wù)器的資源地址,繞過別?資源展示??,在????向?戶提供此內(nèi)容,從?減輕??服務(wù)器的負(fù)擔(dān),因?yàn)檎鎸?shí)的空間和流量來?別?服務(wù)器;
防盜鏈設(shè)置思路: 區(qū)別哪些請(qǐng)求是?正常?戶請(qǐng)求;
基于http_refer 防盜鏈配置模塊:
Syntax: valid_referers none | blocked | server_names | string ...;
Default: —
Context: server, location
另一臺(tái)nginx服務(wù)器(初始的情況),編寫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
第一臺(tái)服務(wù)正常訪問:
第二胎服務(wù)器盜用第一臺(tái)服務(wù)器的圖片:
[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
再次訪問第二臺(tái)服務(wù)器:
關(guān)于Nginx靜態(tài)資源使用方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。