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

資訊專(zhuān)欄INFORMATION COLUMN

Nginx-場(chǎng)景實(shí)踐篇

Steven / 946人閱讀

摘要:場(chǎng)景實(shí)踐篇一作為靜態(tài)資源服務(wù)動(dòng)態(tài)資源和靜態(tài)資源客戶(hù)端請(qǐng)求的頁(yè)面如果是靜態(tài)網(wǎng)頁(yè),那么服務(wù)器會(huì)直接把靜態(tài)網(wǎng)頁(yè)的內(nèi)容響應(yīng)給客戶(hù)端。

Nginx-場(chǎng)景實(shí)踐篇 一、Nginx作為靜態(tài)資源Web服務(wù) 1、動(dòng)態(tài)資源和靜態(tài)資源
客戶(hù)端請(qǐng)求的頁(yè)面如果是靜態(tài)網(wǎng)頁(yè),那么服務(wù)器會(huì)直接把靜態(tài)網(wǎng)頁(yè)的內(nèi)容響應(yīng)給客戶(hù)端。如果客戶(hù)端請(qǐng)求的是動(dòng)態(tài)網(wǎng)頁(yè),服務(wù)器需要先把動(dòng)態(tài)網(wǎng)頁(yè)換成靜態(tài)網(wǎng)頁(yè),然后再把轉(zhuǎn)換后的靜態(tài)網(wǎng)頁(yè)響應(yīng)給客戶(hù)端

靜態(tài)資源的幾種類(lèi)型

瀏覽器渲染:HTML、CSS、JAVASCRIPT

圖片:JPEG、GIF、PNG ...

視頻:FLV、MPEG ...

文件:TXT、等任意下載文件

2、CDN(Content Delivery Network)內(nèi)容分發(fā)網(wǎng)絡(luò)
其基本思路是盡可能避開(kāi)互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母臁⒏€(wěn)定。通過(guò)在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶(hù)的距離和響應(yīng)時(shí)間等綜合信息將用戶(hù)的請(qǐng)求重新導(dǎo)向離用戶(hù)最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶(hù)可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶(hù)訪(fǎng)問(wèn)網(wǎng)站的響應(yīng)速度。
3、配置語(yǔ)法

sendfile(文件讀?。?/p>

配置語(yǔ)法:sendfile on|off;

默認(rèn):無(wú)

Context:http,server,location,if in location

tcp_nopush(sendfile開(kāi)啟的情況下,提高網(wǎng)絡(luò)包的傳輸效率)

配置語(yǔ)法:tcp_nopush on|off;

默認(rèn):無(wú)

Context:http,server,location

tcp_nodelay(keepalive連接下,提高網(wǎng)絡(luò)包的傳輸實(shí)時(shí)性)

配置語(yǔ)法:tcp_nodely on|off;

默認(rèn):無(wú)

Context:http,server,location

gzip(壓縮)

配置語(yǔ)法:gzip on|off;

默認(rèn):無(wú)

Context:http,server,location,if in location

gizp_comp_level(壓縮比)

配置語(yǔ)法:gzip_comp_level level;

默認(rèn):無(wú);

Context:http,server,location

gzip_http_version(gzip的http的版本)

配置語(yǔ)法:gzip_http_version 1.0|1.1;

默認(rèn):無(wú)

Context:http,server,location

gzip_static(預(yù)讀gzip功能)

配置語(yǔ)法:gzip_static on|off|always;

默認(rèn):gzip_static off;

Context:http,server,location

4、瀏覽器緩存
HTTP協(xié)議定義的緩存機(jī)制(如:Expires;Cache-control等)

瀏覽器無(wú)緩存:

瀏覽器請(qǐng)求→無(wú)緩存→請(qǐng)求WEB服務(wù)器→請(qǐng)求相應(yīng),協(xié)商→呈現(xiàn)

客戶(hù)端有緩存

瀏覽器請(qǐng)求→有緩存→校驗(yàn)過(guò)期→呈現(xiàn)

校驗(yàn)過(guò)期機(jī)制

校驗(yàn)方式 對(duì)應(yīng)頭信息
校驗(yàn)是否過(guò)期 Expires、Cache-Control(max-age)
協(xié)議中的Etag頭信息校驗(yàn) Etag
Last-Modified有信息校驗(yàn) Last-Modified

第一次請(qǐng)求:

第二次請(qǐng)求:

expires(response的headers添加Cache-Control、Expires)

配置語(yǔ)法:expires [modified] time; expires epoch |max |off;

默認(rèn):expires off;

Context:http,server,location,if in location

5、跨站訪(fǎng)問(wèn)
Nginx如何打開(kāi)跨站訪(fǎng)問(wèn)? Access-Controller-Allow-Origin

add_header

配置語(yǔ)法:add_header name value [always];

默認(rèn):無(wú)

Context:http,server,location,if in location

name可以為 Access-Controller-Allow-Origin 和  Access-Controller-Allow-Method
6、防盜鏈
基于http_refer防盜鏈配置模塊

配置語(yǔ)法:valid_referers none|blocked|server_names|string...;

默認(rèn):無(wú)

Context:server,location

valid_referers none blocked IP
if($invalid_referer) {
    return 403;
}

提醒:可以使用curl來(lái)測(cè)試配置好的防盜鏈:curl -e "http:www.baidu.com" -I IP


二、Nginx作為代理服務(wù)

正向代理

對(duì)象是客戶(hù)端(比如說(shuō)想訪(fǎng)問(wèn)外網(wǎng),把代理服務(wù)器設(shè)到代理地址,客戶(hù)端可以訪(fǎng)問(wèn)任何網(wǎng)站)

反向代理

對(duì)象是服務(wù)端(并不需要關(guān)心訪(fǎng)問(wèn)的是哪一臺(tái)服務(wù)器,反向代理就放在服務(wù)端。反向代理會(huì)幫我們處理請(qǐng)求)

proxy_pass

配置語(yǔ)法:proxy_pass URL;

默認(rèn):無(wú)

Context:location,if in location,limit_except

其他代理的一些語(yǔ)法補(bǔ)充

proxy_buffering(緩沖區(qū))

語(yǔ)法配置:proxy_buffering on | off;

默認(rèn):無(wú);

Context:http,server,location

擴(kuò)展:proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size

proxy_redirect(跳轉(zhuǎn)重定向)

配置語(yǔ)法:proxy_redirect default;proxy_redirect off;proxy_redirect redirect replacement;

默認(rèn):無(wú)

Context:http,server,location

proxy_set_header(頭信息)

配置語(yǔ)法:proxy_set_header file value;

默認(rèn):proxy_set_header Host $proxy_host;proxy_set_header Connection close;

Context:http,server,location

擴(kuò)展:proxy_hide_header、proxy_set_body

proxy_connect_timeout(超時(shí))

配置語(yǔ)法:proxy_connect_timeout time;

默認(rèn):無(wú)

Context:http,server,location

擴(kuò)展:proxy_read_timeout、proxy_send_timeout

配置文件中的例子:
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;

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
三、Nginx作為負(fù)載均衡服務(wù)
負(fù)載均衡:建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。
負(fù)載均衡,英文名稱(chēng)為L(zhǎng)oad Balance,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。

upstream

配置語(yǔ)法: upstream name {...}

默認(rèn):無(wú)

Context:http

簡(jiǎn)單配置例子

upstream ronaldo {
        server ip:port [param];
        server ip:port [param];
        server ip:port [param];
}
server {
    location / {
        proxy_pass http://ronaldo;
    }
}
param參數(shù)解釋?zhuān)?/b>
param 意義
down 當(dāng)前的server暫時(shí)不參與負(fù)載均衡
weight=num 權(quán)重,num越大,輪詢(xún)到的概率越大
backup 預(yù)留的備份服務(wù)器
max_fails 允許請(qǐng)求失敗的次數(shù)
fail_timeout 經(jīng)過(guò)max_fails失敗后,服務(wù)暫停的時(shí)間(默認(rèn)是10s)
max_conns 限制最大的接收的連接數(shù)
調(diào)度算法:
算法 意義
輪詢(xún) 按時(shí)間順序逐一分配到不同的后端服務(wù)器
加權(quán)輪詢(xún) weight值越大,分配到的訪(fǎng)問(wèn)幾率越高
ip_hash 每個(gè)請(qǐng)求按訪(fǎng)問(wèn)IP的hash結(jié)果分配,這樣來(lái)自同一個(gè)IP就固定訪(fǎng)問(wèn)同一個(gè)后端服務(wù)器
least_conn 最少連接數(shù),哪個(gè)服務(wù)器連接數(shù)少就分發(fā)
url_hash 按照訪(fǎng)問(wèn)的URL的hash結(jié)果來(lái)分配請(qǐng)求,是每個(gè)URL定向到同一個(gè)后端服務(wù)器
hash關(guān)鍵字值 hash自定義的key

ip_hash:

只需要在upstream中加入 ip_hash; 即可

缺陷:如果走代理,那么remote_addr就不是用戶(hù)真實(shí)的ip

url_hash(1.7.2版本以后可用):

配置語(yǔ)法:hash key [consistent];

默認(rèn):無(wú)

Context:upstream

key可以是$request_uri,根據(jù)url進(jìn)行hash
四、Nginx作為緩存服務(wù) 1、緩存的類(lèi)型

服務(wù)端緩存。例:memcache、reids

代理緩存。例:Nginx緩存服務(wù)端的數(shù)據(jù)

客戶(hù)端緩存。

2、常用緩存配置

proxy_cache_path

配置語(yǔ)法proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size] [use_temp_path]...

默認(rèn):無(wú)

Context:http

proxy_cache

配置語(yǔ)法:proxy_cache zone | off;

默認(rèn):proxy_cache off;

Context:http,server,location

proxy_cache_valid(緩存過(guò)期周期)

配置語(yǔ)法:proxy_cache_valid [code...] time

默認(rèn):無(wú)

Context:http、server、location

proxy_cache_key(緩存的維度)

配置語(yǔ)法:proxy_cache_key string;

默認(rèn):proxy_cache_key $scheme$proxy_host$request_uri;

Context:http、server、location

常見(jiàn)配置:

proxy_cache_path cache_path levels=1:2 keys_zone=key_name:10m max_size=10g inactive=60m use_temp_path=off;

server {
    loaction / {
        proxy_pass http://ronaldo;
        proxy_cache key_name;
        proxy_cache_valid 200 304 12h;
        proxy_cache_valid any 10m;
        proxy_cache_key $host$uri$is_args$args;
        add_header Nginx-Cache "$upstream_cache_status";

        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }
}
2、清除指定緩存

rm -rf 緩存目錄內(nèi)容

第三方擴(kuò)展模塊:ngx_cache_purge

3、如何讓部分頁(yè)面不緩存

proxy_no_cache

配置語(yǔ)法:proxy_no_cache string ...;

默認(rèn):無(wú)

Context:http,server,location

簡(jiǎn)單示例

if ($request_uri ~ ^/(url_3|login|register|password/reset)) {
    set $cookie_nocache 1;
}

location / {
    proxy_no_cache $cookie_nocache;
}
4、大文件分片請(qǐng)求

slice

語(yǔ)法配置:slice size;

默認(rèn):slice 0;

Context:http、server,location

優(yōu)勢(shì):每個(gè)子請(qǐng)求收到的數(shù)據(jù)都會(huì)形成一個(gè)獨(dú)立的文件,一個(gè)請(qǐng)求斷了,其他請(qǐng)求不受影響。
缺點(diǎn):當(dāng)文件很大或者slice很小的時(shí)候,可能會(huì)導(dǎo)致文件描述符耗盡等待情況。

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

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

相關(guān)文章

  • Nginx-場(chǎng)景實(shí)踐篇

    摘要:場(chǎng)景實(shí)踐篇一作為靜態(tài)資源服務(wù)動(dòng)態(tài)資源和靜態(tài)資源客戶(hù)端請(qǐng)求的頁(yè)面如果是靜態(tài)網(wǎng)頁(yè),那么服務(wù)器會(huì)直接把靜態(tài)網(wǎng)頁(yè)的內(nèi)容響應(yīng)給客戶(hù)端。 Nginx-場(chǎng)景實(shí)踐篇 一、Nginx作為靜態(tài)資源Web服務(wù) 1、動(dòng)態(tài)資源和靜態(tài)資源 客戶(hù)端請(qǐng)求的頁(yè)面如果是靜態(tài)網(wǎng)頁(yè),那么服務(wù)器會(huì)直接把靜態(tài)網(wǎng)頁(yè)的內(nèi)容響應(yīng)給客戶(hù)端。如果客戶(hù)端請(qǐng)求的是動(dòng)態(tài)網(wǎng)頁(yè),服務(wù)器需要先把動(dòng)態(tài)網(wǎng)頁(yè)換成靜態(tài)網(wǎng)頁(yè),然后再把轉(zhuǎn)換后的靜態(tài)網(wǎng)頁(yè)響應(yīng)給客戶(hù)...

    yeooo 評(píng)論0 收藏0
  • redis ----分布式鎖

    摘要:假設(shè)反向代理層是,里能夠配置多個(gè)后端,并且能夠探測(cè)到多個(gè)后端的存活性。以為例,天然支持主從同步,官方也有哨兵機(jī)制,來(lái)做的存活性檢測(cè)。方法論上,高可用是通過(guò)冗余自動(dòng)故障轉(zhuǎn)移來(lái)實(shí)現(xiàn)的。 究竟啥才是互聯(lián)網(wǎng)架構(gòu)高可用 一、什么是高可用 高可用HA(High Availability)是分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一,它通常是指,通過(guò)設(shè)計(jì)減少系統(tǒng)不能提供服務(wù)的時(shí)間。假設(shè)系統(tǒng)一直能夠提供服...

    imingyu 評(píng)論0 收藏0
  • Nginx實(shí)踐篇(1)- Nginx作為靜態(tài)資源web服務(wù) - 靜態(tài)資源壓縮

    摘要:一靜態(tài)資源服務(wù)靜態(tài)資源類(lèi)型類(lèi)型文件類(lèi)型瀏覽器端渲染圖片視頻文件等其他下載文件靜態(tài)資源服務(wù)場(chǎng)景二靜態(tài)資源核心配置文件讀取是一種高效傳輸文件的模式設(shè)置為表示啟動(dòng)高效傳輸文件的模式。語(yǔ)法壓縮開(kāi)啟壓縮,可以加快資源響應(yīng)速度,同時(shí)節(jié)省網(wǎng)絡(luò)帶寬資源。 一、靜態(tài)資源web服務(wù) showImg(https://segmentfault.com/img/remote/1460000015873025?w...

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

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

0條評(píng)論

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