1. 程式人生 > >Nginx之Memcached上遊服務器

Nginx之Memcached上遊服務器

emca 會話 server 進程通信 指令 客戶端 應用服務 分布式 實現

Memcached

Memcached是高性能的分布式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。

Nginx中Memcached模塊

在Nginx中, Memcached模塊默認是開啟的,它負責與memcached守護進程通信。因此,客戶端和memcached守護進程之間沒有直接通信,也就是說,在這種情況下,Nginx不再是充當反向代理。memcached模塊使得Nginx可以使用memcached協議會話,因此,key的查詢能夠在請求傳遞到上遊應用服務器之前完成。

upstream memcaches {                # 定義memcached上遊服務器池
        server  10.20.21.10:11211;
        server  10.20.21.11:11211;
        server  10.20.21.12:11211;
}
server {
        location / {
                set $memcached_key "$uri?$args";         # 進行查找
                memcached_pass  memcaches;
                error_page 404=@server;                #沒有查找到,則轉發給@server處理,並保存處理後的值
        }
        location @server {
                proxy_pass http://127.0.0.1:80;
        }
}

解釋如下:

通過memcached_pass指令使用$memcached_key變量實現key值的查找,如果memcached中沒有查找到,則執行404處定義的@server來處理,這樣子將請求轉發到127.0.0.1:80來處理該請求,並且還會在memcached實例中插入該鍵/值對。

Nginx之Memcached上遊服務器