Nginx之Memcached上遊服務器
阿新 • • 發佈:2019-03-31
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上遊服務器