Memcached是高性能的分佈式內存緩存服務器。通常的使用目的是,經過緩存數據庫查詢結果,減小數據庫訪問次數,以提升動態Web應用的速度、提升可擴展性。 數據庫
在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實例中插入該鍵/值對。服務器