今天發的是一篇續篇,主要講講如何實現?想閱讀第一篇的,點擊傳送門php
首先完善了下管理配置後臺,看下dashbord長什麼樣,先睹爲快。git
畫了個簡易流程圖,方便你們理解。github
在index.php中主要作兩件事情,一個是獲取到客戶端IP,另一個就是拿這個IP到咱們的redis ip庫中檢索。若是存在就繼續向下流程,若是不存在則向右流程,返回403,這樣就拒絕了不在庫中用戶的訪問,達到了白名單效果。redis
在整個設計中redis是一個很是重要的一個節點。IP存在redis使用的是set類型,爲何使用set類型簡單說明下。segmentfault
redis中可以存儲集合的就是list和set,而它們倆的區別就是一個是有序集合,一個是無序集合,且Set集合中不容許出現重複的元素。即屢次添加同一個IP只會存在一份拷貝,這太關鍵了,減小了數據冗餘或者說咱們添加時不須要判斷該IP是否存在。spa
實現代碼參考:https://github.com/jacoobwang...設計
若是有更多PHP白名單問題或者openresty白名單問題均可以留言與我聯繫……^_^rest