最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx負(fù)載均衡中的Memcached緩存模塊

 更新時(shí)間:2024年06月27日 09:38:12   作者:wyx學(xué)習(xí)k8s  
Nginx?的?ngx_http_memcached_module?模塊本身并沒(méi)有提供緩存功能,它只是一個(gè)將用戶請(qǐng)求轉(zhuǎn)發(fā)到?Memcached?服務(wù)器的代理模塊,這篇文章主要介紹了Nginx負(fù)載均衡之Memcached緩存模塊,需要的朋友可以參考下

Nginx 的 ngx_http_memcached_module 模塊本身并沒(méi)有提供緩存功能,它只是一個(gè)將用戶請(qǐng)求轉(zhuǎn)發(fā)到 Memcached 服務(wù)器的代理模塊。
在以 Memcached 服務(wù)器為緩存應(yīng)用的方案中,Memcached 作為內(nèi)容緩存的存儲(chǔ)服務(wù)器,用戶通過(guò) URL 為 Memcached 的 key 將 Web 請(qǐng)求數(shù)據(jù)緩存到 Memcached 服務(wù)器中,在客戶端發(fā)起請(qǐng)求時(shí),Nginx 通過(guò)一致的 URL 為 key,快速地從 Memcached 服務(wù)器中將緩存的內(nèi)容作為用戶的請(qǐng)求響應(yīng)數(shù)據(jù)返回給客戶端。
Memcached 是一個(gè)開(kāi)源、高性能的內(nèi)存對(duì)象緩存系統(tǒng),使用 Memcached 服務(wù)器作為緩存存儲(chǔ)服務(wù)器,充分利用了 Memcached 的高效緩存功能,減少了 Nginx 服務(wù)器磁盤 I/O 的操作,也可以通過(guò) upstream 指令對(duì)多臺(tái) Memcached 做分布式集群負(fù)載,以便整體提升 Nginx 緩存服務(wù)器的性能。
Memcached 緩存模塊配置指令如下表所示:

指令名稱指令值格式默認(rèn)值指令說(shuō)明
memcached_bindaddress[transparent]
或 off
--設(shè)置從指定的本地 IP 地址及端口與 Memcached 服務(wù)器建立連接,指令值可以是變量。指令值參數(shù)為 transparent 時(shí),允許將客戶端的真實(shí) IP 透?jìng)鹘o被代理服務(wù)器,并以客戶端真實(shí) IP 為訪問(wèn)被代理服務(wù)器的源 IP,指令值為 off 時(shí),則取消上一層指令域同名指令的配置
memcached_buffer_sizesize4k 或 8k設(shè)置用于讀取 Memcached 服務(wù)器,讀取響應(yīng)數(shù)據(jù)緩沖區(qū)的大小,當(dāng) Nginx 收到響應(yīng)數(shù)據(jù)后,將同步傳遞給客戶端
memcached_connect_timeouttime60sNginx 與 Memcached 服務(wù)器建立連接的超時(shí)時(shí)間,通常不應(yīng)超過(guò) 75s
memcached_force_rangeson 或 offoff啟用來(lái)自 Memcached 服務(wù)器的緩存和未緩存響應(yīng)的 byte-range 請(qǐng)求支持,而不考慮這些響應(yīng)頭中的 Accept-Ranges 字段
memcached_gzip_flagflag--啟用對(duì) Memcached 服務(wù)器緩存數(shù)據(jù) fags 的測(cè)試,flags 為客戶端寫(xiě)入緩存時(shí)的自定義標(biāo)記,此處用以判斷緩存數(shù)據(jù)是否被壓縮存儲(chǔ),如果數(shù)據(jù)被壓縮存儲(chǔ),則將響應(yīng)頭字段 Content-Encoding 設(shè)置為 gzip
memcached_next_upstreamerror、timeout、
invalid_header、
not found 或 off...
error timeout當(dāng)出現(xiàn)指令值中指定的條件時(shí),將未返回響應(yīng)的客戶請(qǐng)求傳遞給 upstream 中的下一個(gè)服務(wù)器
memcached_next_upstream_timeouttime0設(shè)置將符合條件的客戶端請(qǐng)求傳遞給 upstream 中下一個(gè)服務(wù)器的超時(shí)時(shí)間。0 為不做超時(shí)限制,遍歷完所有上游服務(wù)器組中的服務(wù)器為止
memcached_next_upstream_triesnumber0設(shè)置符合條件的客戶端請(qǐng)求傳遞給upstream中下一個(gè)服務(wù)器的嘗試次數(shù),包括第一次失敗的次數(shù)。0為不做嘗試次數(shù)限制,遍歷完所有上游服務(wù)器組中的服務(wù)器為止
memcached_passaddress--設(shè)置 Memcached 服務(wù)器的地址及端口,地址可以是 IP、域名或 UNIX 套接字
memcached_read_timeouttime60s在連續(xù)兩個(gè)從 Memcached 服務(wù)器接收數(shù)據(jù)的讀操作之間的間隔時(shí)間超過(guò)設(shè)置的時(shí)間時(shí),將關(guān)閉連接
memcached_send_timeouttime60s在連續(xù)兩個(gè)發(fā)送到 Memcached 服務(wù)器的寫(xiě)操作之間的間隔時(shí)間超過(guò)設(shè)置的時(shí)間時(shí),將關(guān)閉連接
memcached_socket_keepaliveon 或 offoff設(shè)置 Nginx 與 Memcached 服務(wù)器的 TCP keepalive 行為的心跳檢測(cè)機(jī)制,默認(rèn)使用操作系統(tǒng)的 socket 配置,若指令值為 on,則開(kāi)啟 SO_KEEPALIVE 選項(xiàng)進(jìn)行心跳檢測(cè)

配置樣例如下:

server {
    location / {
        set            $memcached_key "$uri?$args";  # 設(shè)置Memcached緩存key
        memcached_pass 127.0.0.1:11211;              # 設(shè)置被代理Memcached地址
        error_page     404 502 504 = @fallback;      # 返回狀態(tài)碼404、502、504時(shí)跳入內(nèi)部請(qǐng)求
    }
    location @fallback {
        proxy_pass     http://backend;               # 將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器
    }
}

為了提高動(dòng)態(tài)網(wǎng)站的響應(yīng)速度,有時(shí)會(huì)采用將動(dòng)態(tài)網(wǎng)站轉(zhuǎn)換成靜態(tài)化文件的方式進(jìn)行優(yōu)化,而相對(duì)于磁盤存儲(chǔ),使用 Memcached 進(jìn)行靜態(tài)文件的存儲(chǔ)則可以進(jìn)一步提升網(wǎng)站的響應(yīng)速度。Memcached 是基于內(nèi)存的高性能對(duì)象緩存系統(tǒng),因?yàn)榇鎯?chǔ)數(shù)據(jù)都是在內(nèi)存中的,所以減少了系統(tǒng)的 I/O 操作,從而避免了因磁盤性能帶來(lái)的影響。
使用 Memcached 作為緩存存儲(chǔ)服務(wù)器,可以直接利用 Memcached 緩存的過(guò)期機(jī)制實(shí)現(xiàn)緩存的自動(dòng)化過(guò)期管理,且利用 Nginx 的負(fù)載機(jī)制和 Memcached 分布式特性,可以非常方便地橫向擴(kuò)展,以提升處理性能。Memcached 緩存應(yīng)用場(chǎng)景如下圖所示。

Web 服務(wù)器將動(dòng)態(tài)文件以請(qǐng)求 URI 作為 Memcached 的 key 初始化到 Memcached 服務(wù)器中;Nginx 將用戶請(qǐng)求轉(zhuǎn)發(fā)到 Memcached 服務(wù)器中,并將以請(qǐng)求 URI 作為 Memcached key 的數(shù)據(jù)返回給用戶;當(dāng) Memcached 的請(qǐng)求失敗后,則將請(qǐng)求轉(zhuǎn)發(fā)給后端 Web 服務(wù)器的接口動(dòng)態(tài)生成對(duì)應(yīng)的靜態(tài)文件,返回響應(yīng)數(shù)據(jù)并更新 Memcached。
Memcached 的安裝非常簡(jiǎn)單,在 CentOS 7 系統(tǒng)下使用 yum 安裝即可,安裝方法如下:

yum -y install memcached
cat /etc/sysconfig/memcached
PORT="11211"                  # 端口
USER="memcached"
MAXCONN="1024"          # 最大連接數(shù)
CACHESIZE="64"              # 使用內(nèi)存大小為64M
OPTIONS=""
systemctl start memcached

Nginx 服務(wù)器配置樣例如下:

upstream backend {
    server 192.168.2.145:8190;                              # 后端PHP服務(wù)器IP
}
upstream memcached {
    hash $host$request_uri consistent;                      # 一致性hash
    server 192.168.2.145:11211;                             # Memcached服務(wù)器IP
    server 192.168.2.109:11211;                             # Memcached服務(wù)器IP
}
server {
    listen       8181;
    access_log logs/mem_access.log;
    set $memcached_key $host$request_uri;                   # 設(shè)置Memcached的key
    location / {
        memcached_connect_timeout 5s;             # 與Memcached建立連接超時(shí)時(shí)間為5s
        memcached_read_timeout 2s;                # 連續(xù)兩次讀的超時(shí)時(shí)間為2s
        memcached_send_timeout 2s;                # 連續(xù)兩次寫(xiě)的超時(shí)時(shí)間為2s
        memcached_pass memcached;                 # 代理到Memcached集群
        add_header X-Cache-Satus HIT;             # 顯示緩存命中狀態(tài)
        add_header Content-Type 'text/html; charset=utf-8'; # 強(qiáng)制響應(yīng)數(shù)據(jù)格式為html
    }
    error_page     404 502 504 = @fallback;
    location @fallback {
        proxy_set_header   X-Memcached-Key $memcached_key;  # 將memecached key傳遞
                                                            # 給PHP服務(wù)器
        proxy_pass     http://backend;                      # PHP服務(wù)器
    }
}

到此這篇關(guān)于Nginx負(fù)載均衡之Memcached緩存模塊的文章就介紹到這了,更多相關(guān)Nginx Memcached緩存模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解nginx 代理多個(gè)服務(wù)器(多個(gè)server方式)

    詳解nginx 代理多個(gè)服務(wù)器(多個(gè)server方式)

    本篇文章主要介紹了詳解nginx 代理多個(gè)服務(wù)器(多個(gè)server方式),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • prometheus監(jiān)控nginx的實(shí)現(xiàn)

    prometheus監(jiān)控nginx的實(shí)現(xiàn)

    這篇文章主要介紹了prometheus監(jiān)控nginx的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 使用Nginx搭建文件下載服務(wù)器的方法詳解

    使用Nginx搭建文件下載服務(wù)器的方法詳解

    本篇文章主要介紹了使用nginx搭建文件下載服務(wù)器的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,文章通過(guò)代碼給大家介紹的非常詳細(xì),有需要的一起跟隨小編過(guò)來(lái)看看吧
    2023-09-09
  • Nginx中定義404頁(yè)面并且返回404狀態(tài)碼的正確方法

    Nginx中定義404頁(yè)面并且返回404狀態(tài)碼的正確方法

    這篇文章主要介紹了Nginx中定義404頁(yè)面并且返回404狀態(tài)碼的正確方法,本文在一次AJAX調(diào)用時(shí)發(fā)現(xiàn)了這個(gè)問(wèn)題,服務(wù)器返回了一個(gè)404頁(yè)頁(yè)但沒(méi)有返回404狀態(tài)碼,需要的朋友可以參考下
    2014-08-08
  • Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

    Nginx作為反向代理時(shí)傳遞客戶端IP的設(shè)置方法

    因?yàn)閚ginx的優(yōu)越性,現(xiàn)在越來(lái)越多的用戶在生產(chǎn)環(huán)境中使用nginx作為前端,不管nginx在前端是做負(fù)載均衡還是只做簡(jiǎn)單的反向代理,都需要把日志轉(zhuǎn)發(fā)到后端real server,以方便我們檢查程序的各種故障
    2014-08-08
  • nginx反向代理下的長(zhǎng)連接實(shí)現(xiàn)

    nginx反向代理下的長(zhǎng)連接實(shí)現(xiàn)

    本文主要介紹了Nginx反向代理下的長(zhǎng)連接實(shí)現(xiàn),包括客戶端到Nginx和Nginx到后端服務(wù)器之間的長(zhǎng)連接設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-11-11
  • 在Nginx上配置多個(gè)站點(diǎn)的方法

    在Nginx上配置多個(gè)站點(diǎn)的方法

    這篇文章主要介紹了在Nginx上配置多個(gè)站點(diǎn)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Nginx HTTP 配置指令的實(shí)現(xiàn)示例

    Nginx HTTP 配置指令的實(shí)現(xiàn)示例

    本文主要介紹了Nginx的配置文件結(jié)構(gòu)和HTTP配置指令,涵蓋了從請(qǐng)求處理到安全、日志、負(fù)載均衡、緩存等各個(gè)方面,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解

    nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解

    這篇文章主要為大家介紹了nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Nginx 訪問(wèn) /root/下 403 Forbidden問(wèn)題解決

    Nginx 訪問(wèn) /root/下 403 Forbidden問(wèn)題解決

    在使用Nginx作為Web服務(wù)器時(shí),可能會(huì)遇到403 Forbidden錯(cuò)誤,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05

最新評(píng)論

辉县市| 太谷县| 彩票| 胶南市| 浪卡子县| 静乐县| 塘沽区| 汽车| 塔城市| 太白县| 金沙县| 广饶县| 贵定县| 铜山县| 印江| 麻城市| 诸暨市| 青河县| 茌平县| 探索| 富裕县| 吉林省| 沁阳市| 三门峡市| 泸西县| 沙田区| 呼伦贝尔市| 房产| 惠水县| 黄平县| 楚雄市| 鄄城县| 富民县| 长沙县| 万州区| 永春县| 金溪县| 得荣县| 墨江| 陆河县| 平阳县|