這裏不討論服務器分佈式部署好處,服務併發處理的首要問題是:處理用戶登陸狀態的一致性。html
用戶在瀏覽器登陸記住密碼7天,第一臺機器的登陸信息保存,期間可能會訪問到多臺機器,保持登陸狀態。mysql
用戶登陸狀態的須要保存,session如何同步?nginx
網上大神的實踐方案不少,這裏做選擇測試。session是存儲在服務器本地的,認爲瀏覽器端cookie開啓,不開起能夠對環境設置session的url傳參模式,但對於普通用戶看來安全性下降了,原理是區別不大。
參考《分佈式系統session一致性的問題》,主要有:
其一,session入庫:把session信息添加到mysql表、redis中,若是本地不存在、能夠經過cookie能夠查詢獲取這些用戶狀態信息,但這會增長後端設計開發的複雜度;
第二,代理分發:主動映射服務器ip,用戶只會訪問到指定的服務器,但部署起來有些麻煩。
這裏選擇代理分發模式,服務器擴容的問題優先在部署方解決,總體邏輯上也比較簡潔清晰。
c.部署測試redis
vim config/nginx.conf :s%/logs/etc/g #把logs日誌目錄所有改到etc下
[]:~/tmp/dk# docker stop $(docker ps -aq) #啓動mysql和redis []:~/tmp/dk# docker start mm ms rm rs