Nginx之Memcached上游服務器

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實例中插入該鍵/值對。服務器

相關文章
相關標籤/搜索