成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Nginx入門到實(shí)戰(zhàn)(2)場(chǎng)景實(shí)現(xiàn)篇

netmou / 1414人閱讀

摘要:上一章了解了的基礎(chǔ)理論與配置,這一章將介紹在各種不同場(chǎng)景下的不同使用方法一靜態(tài)資源服務(wù)靜態(tài)資源類型非服務(wù)器動(dòng)態(tài)運(yùn)行生成的文件,換句話說,就是可以直接在服務(wù)器上找到對(duì)應(yīng)文件的請(qǐng)求瀏覽器端渲染圖片視頻文件,任意下載文件靜態(tài)資源服務(wù)場(chǎng)景什么是例

上一章了解了nginx的基礎(chǔ)理論與配置,這一章將介紹nginx在各種不同場(chǎng)景下的不同使用方法
一、靜態(tài)資源WEB服務(wù)

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

非服務(wù)器動(dòng)態(tài)運(yùn)行生成的文件,換句話說,就是可以直接在服務(wù)器上找到對(duì)應(yīng)文件的請(qǐng)求

瀏覽器端渲染:HTML,CSS,JS

圖片:JPEG,GIF,PNG

視頻:FLV,MPEG

文件:TXT,任意下載文件

2.靜態(tài)資源服務(wù)場(chǎng)景-CDN

什么是CDN?例如一個(gè)北京用戶要請(qǐng)求一個(gè)文件,而文件放在的新疆的資源存儲(chǔ)中心,如果直接請(qǐng)求新疆距離太遠(yuǎn),延遲久。使用nginx靜態(tài)資源回源,分發(fā)給北京的資源存儲(chǔ)中心,讓用戶請(qǐng)求的動(dòng)態(tài)定位到北京的資源存儲(chǔ)中心請(qǐng)求,實(shí)現(xiàn)傳輸延遲的最小化

2.nginx靜態(tài)資源配置

配置域:http、server、location 
#文件高速讀取
http {  
     sendfile   on;
}
#在 sendfile 開啟的情況下,開啟 tcp_nopush 提高網(wǎng)絡(luò)包傳輸效率
#tcp_nopush 將文件一次性一起傳輸給客戶端,就好像你有十個(gè)包裹,快遞員一次送一個(gè),來回十趟,開啟后,快遞員講等待你十個(gè)包裹都派件,一趟一起送給你
http {  
     sendfile   on;
     tcp_nopush on;
}
#tcp_nodelay 開啟實(shí)時(shí)傳輸,傳輸方式與 tcp_nopush 相反,追求實(shí)時(shí)性,但是它只有在長(zhǎng)連接下才生效
http {  
     sendfile   on;
     tcp_nopush on;
     tcp_nodelay on;
}
#將訪問的文件壓縮傳輸 (減少文件資源大小,提高傳輸速度)
#當(dāng)訪問內(nèi)容以gif或jpg結(jié)尾的資源時(shí)
location ~ .*.(gif|jpg)$ {  
    gzip on; #開啟
    gzip_http_version 1.1; #服務(wù)器傳輸版本
    gzip_comp_level 2; #壓縮比,越高壓縮越多,壓縮越高可能會(huì)消耗服務(wù)器性能
    gzip_types   text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss image/jpeg image/gif image/png;     #壓縮文件類型
    root /opt/app/code;     #對(duì)應(yīng)目錄(去該目錄下尋找對(duì)應(yīng)文件)
}

#直接訪問已壓縮文件
#當(dāng)訪問路徑以download開頭時(shí),如www.baidu.com/download/test.img
#去/opt/app/code目錄下尋找test.img.gz文件,返回到前端時(shí)已是可以瀏覽的img文件
location ~ load^/download {  
    gzip_static on #開啟;
    tcp_nopush on;
    root /opt/app/code;
}
二、瀏覽器緩存

HTTP協(xié)議定義的緩存機(jī)制(如:Expires; Cache-control等 )
減少服務(wù)端的消耗,降低延遲

1.瀏覽器無緩存

瀏覽器請(qǐng)求 -> 無緩存 -> 請(qǐng)求WEB服務(wù)器 -> 請(qǐng)求相應(yīng) -> 呈現(xiàn)

呈現(xiàn)階段會(huì)根據(jù)緩存的設(shè)置在瀏覽器中生成緩存

2.瀏覽器有緩存

瀏覽器請(qǐng)求 -> 有緩存 -> 校驗(yàn)本地緩存時(shí)間是否過期 -> 沒有過期 -> 呈現(xiàn)

若過期從新請(qǐng)求WEB服務(wù)器

3.語(yǔ)法配置

location ~ .*.(html|htm)$ {  
    expires 12h;    #緩存12小時(shí)
}

服務(wù)器響應(yīng)靜態(tài)文件時(shí),請(qǐng)求頭信息會(huì)帶上 etag 和 last_modified_since 2個(gè)標(biāo)簽值,瀏覽器下次去請(qǐng)求時(shí),頭信息發(fā)送這兩個(gè)標(biāo)簽,服務(wù)器檢測(cè)文件有沒有發(fā)生變化,如無,直接頭信息返 etag 和last_modified_since,狀態(tài)碼為 304 ,瀏覽器知道內(nèi)容無改變,于是直接調(diào)用本地緩存,這個(gè)過程也請(qǐng)求了服務(wù),但是傳著的內(nèi)容極少

三、跨站訪問

開發(fā)nginx跨站訪問設(shè)置

location ~ .*.(html|htm)$ {  
     add_header Access-Control-Allow-Origin *;
     add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
     #Access-Control-Allow-Credentials true #允許cookie跨域
}

在響應(yīng)中指定 Access-Control-Allow-Credentials 為 true 時(shí),Access-Control-Allow-Origin 不能指定為 *,需要指定到具體域名

相關(guān)跨域內(nèi)容可參考 Laravel 跨域功能中間件 使用代碼實(shí)現(xiàn)跨域,原理與nginx跨域配置相同

四、防盜鏈

防止服務(wù)器內(nèi)的靜態(tài)資源被其他網(wǎng)站所套用
此處介紹的 nginx 防盜鏈為基礎(chǔ)方式,其它更加深入的方式將在之后的文章介紹

首先,需要理解一個(gè)nginx變量

$http_referer #表示當(dāng)前請(qǐng)求上一次頁(yè)面訪問的地址,換句話說,訪問 www.baidu.com 主頁(yè),這是第一次訪問,所以 $http_referer 為空,但是 訪問此頁(yè)面的時(shí)候還需要獲取一張首頁(yè)圖片,再請(qǐng)求這張圖片的時(shí)候 $http_referer 就為 www.baidu.com 

然后配置

location ~ .*.(jpg|gif)$ {  
    #valid_referers 表示我們?cè)试S哪些 $http_referer 來訪問
    #none 表示沒有帶 $http_referer,如第一次訪問時(shí) $http_referer 為空
    #blocked 表示 $http_referer 不是標(biāo)準(zhǔn)的地址,非正常域名等
    #只允許此ip
    valid_referers none blocked 127.xxx.xxx.xx
    if ($invalid_referer) {     #不滿足情況下變量值為1
        return 403;
    }
}
五、HTTP代理服務(wù)

Nginx可以實(shí)現(xiàn)多種代理方式

HTTP

ICMPPOPIMAP

HTTPS

RTMP

1. 代理區(qū)別

區(qū)別在于代理的對(duì)象不一樣

正向代理代理的對(duì)象是客戶端
反向代理代理的對(duì)象是服務(wù)端

2. 反向代理

語(yǔ)法:proxy_pass URL
默認(rèn):——
位置:loaction
#代理端口
#場(chǎng)景:服務(wù)器80端口開放,8080端口對(duì)外關(guān)閉,客戶端需要訪問到8080
#在nginx中配置proxy_pass代理轉(zhuǎn)發(fā)時(shí),如果在proxy_pass后面的url加/,表示絕對(duì)根路徑;如果沒有/,表示相對(duì)路徑,把匹配的路徑部分也給代理走
server {
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect default;
        
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr; #獲取客戶端真實(shí)IP
        
        proxy_connect_timeout 30; #超時(shí)時(shí)間
        proxy_send_timeout 60;
        proxy_read_timeout 60;
        
        proxy_buffer_size 32k;
        proxy_buffering on; #開啟緩沖區(qū),減少磁盤io
        proxy_buffers 4 128k;
        proxy_busy_buffers_size 256k;
        proxy_max_temp_file_size 256k; #當(dāng)超過內(nèi)存允許儲(chǔ)蓄大小,存到文件
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39939.html

相關(guān)文章

  • Nginx入門實(shí)戰(zhàn)(3)負(fù)載均衡和緩存服務(wù)

    摘要:負(fù)載均衡與緩存服務(wù)也是屬于的實(shí)用場(chǎng)景之一,因?yàn)槟K相對(duì)重要,所以沒有一同放入入門到實(shí)戰(zhàn)場(chǎng)景實(shí)現(xiàn)篇文章中,將其單獨(dú)提取出來一負(fù)載均衡負(fù)載均衡的實(shí)現(xiàn)方法就是我們上章介紹的反向代理。 負(fù)載均衡與緩存服務(wù)也是屬于 nginx 的實(shí)用場(chǎng)景之一,因?yàn)槟K相對(duì)重要,所以沒有一同放入 Nginx入門到實(shí)戰(zhàn)(2)場(chǎng)景實(shí)現(xiàn)篇 文章中,將其單獨(dú)提取出來 一、負(fù)載均衡 負(fù)載均衡的實(shí)現(xiàn)方法就是我們上章介紹的反向...

    fredshare 評(píng)論0 收藏0
  • Nginx入門實(shí)戰(zhàn)(3)負(fù)載均衡和緩存服務(wù)

    摘要:負(fù)載均衡與緩存服務(wù)也是屬于的實(shí)用場(chǎng)景之一,因?yàn)槟K相對(duì)重要,所以沒有一同放入入門到實(shí)戰(zhàn)場(chǎng)景實(shí)現(xiàn)篇文章中,將其單獨(dú)提取出來一負(fù)載均衡負(fù)載均衡的實(shí)現(xiàn)方法就是我們上章介紹的反向代理。 負(fù)載均衡與緩存服務(wù)也是屬于 nginx 的實(shí)用場(chǎng)景之一,因?yàn)槟K相對(duì)重要,所以沒有一同放入 Nginx入門到實(shí)戰(zhàn)(2)場(chǎng)景實(shí)現(xiàn)篇 文章中,將其單獨(dú)提取出來 一、負(fù)載均衡 負(fù)載均衡的實(shí)現(xiàn)方法就是我們上章介紹的反向...

    fsmStudy 評(píng)論0 收藏0
  • PHP相關(guān)

    摘要:的機(jī)器學(xué)習(xí)庫(kù)的機(jī)器學(xué)習(xí)庫(kù),包括算法交叉驗(yàn)證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來的大會(huì)上,她將和大家分享在機(jī)器學(xué)習(xí)領(lǐng)域的全新可能。入門總結(jié)入門相關(guān),如安裝配置基本使用等。 基于 Swoole 開發(fā) PHP 擴(kuò)展 Swoole-1.9.7 增加了一個(gè)新特性,可以基于 Swoole 使用 C++ 語(yǔ)言開發(fā)擴(kuò)展模塊,在擴(kuò)展模塊中可以注冊(cè) PHP 內(nèi)置函數(shù)和類?,F(xiàn)在可以基于 Swoole 來編寫 PHP ...

    lewinlee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<