溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nginx靜態(tài)資源使用方法

發(fā)布時(shí)間:2020-05-28 11:19:37 來源:億速云 閱讀:245 作者:Leah 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家詳細(xì)介紹了Nginx靜態(tài)資源使用方法,Nginx靜態(tài)資源如何對(duì)文件進(jìn)行壓縮和添加防盜鏈,零基礎(chǔ)也能參考此文章,感興趣的小伙伴們可以參考一下。

1)靜態(tài)資源類型

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、任意下載文件

2)靜態(tài)資源場(chǎng)景

靜態(tài)資源傳輸延遲最小化!

如圖:
Nginx靜態(tài)資源使用方法

3)靜態(tài)資源配置語法

1)文件讀取高效——>sendfile
Syntax:sendfile on | off ;
Default:sendfile off ;
Context:http、server、location、if in location ;
2)提高網(wǎng)絡(luò)傳輸效率——>nopush
Syntax:tcp_nopush on | off ;
Default:tcp_nopush off ;
Context:http、server、location ;
作用: sendfile開啟情況下,  提??絡(luò)包的'傳輸效率';
3)與 tcp_nopush 之對(duì)應(yīng)的配置 tcp_nodelay
Syntax: tcp_nodelay on  |   off ;
Default:    tcp_nodelay on ;
Context:http,   server, location ;
作?: 在keepalive連接下,提??絡(luò)的傳輸‘實(shí)時(shí)性’;

4)靜態(tài)資源文件壓縮

Nginx 將響應(yīng)報(bào)?發(fā)送?客戶端之前可以啟?壓縮功能,這能夠有效地節(jié)約帶寬,并提?響應(yīng)?客戶端的速度。

Nginx靜態(tài)資源使用方法

1)gzip壓縮配置語法
Syntax: gzip    on  |   off ;
Default:    gzip    off ;
Context:    http,   server, location,   if  in  location ;
作?:傳輸壓縮;
2)gzip壓縮比率配置語法
Syntax: gzip_comp_level level ;
Default:    gzip_comp_level 1 ;
Context:    http,   server, location ;
作?:壓縮本身?較耗費(fèi)服務(wù)端性能 ;
3)gzip壓縮協(xié)議版本
Syntax: gzip_http_version   1.0 |   1.1 ;
Default:    gzip_http_version   1.1 ;
Context:    http,   server, location ;
作?: 壓縮使?在http哪個(gè)協(xié)議,  主流版本1.1 ;
4)擴(kuò)展壓縮模塊
Syntax: gzip_static on  |   off |   always ;
Default:    gzip_static off ;
Context:    http,   server, location ;
作?: 預(yù)讀gzip功能 ;
5)圖片壓縮案例
[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 

由于圖片的壓縮效果不是太好,所以這里只附上配置!

6)文件壓縮案例
[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 
1)沒有啟用gzip文件壓縮

Nginx靜態(tài)資源使用方法

2)啟用gzip文件壓縮

Nginx靜態(tài)資源使用方法

5)靜態(tài)資源瀏覽器緩存

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í)間)
1)緩存配置語法expires
Syntax: expires [modified]  time ;
Default:    expires off ;
Context:    http,   server, location,   if in location ;
作?: 添加Cache-Control Expires頭 ;
2)配置靜態(tài)資源緩存
[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è)試效果:
Nginx靜態(tài)資源使用方法
Nginx靜態(tài)資源使用方法

3)配置靜態(tài)文件不緩存
[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è)試效果:
Nginx靜態(tài)資源使用方法

6)靜態(tài)資源防盜鏈

盜鏈指的是在??的界?展示不在??服務(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ù)正常訪問:
Nginx靜態(tài)資源使用方法
第二胎服務(wù)器盜用第一臺(tái)服務(wù)器的圖片:
Nginx靜態(tài)資源使用方法

2)啟用防盜鏈
[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ù)器:
Nginx靜態(tài)資源使用方法

關(guān)于Nginx靜態(tài)資源使用方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI