## 一、概述
一套基于平臺的代理服務器,與平臺無縫整合,可以使用平臺所有基礎設施,并提供二次開發接口,以實現特定的業務邏輯;

支持級聯代理服務器,更方便業務的場景規劃設計,實現更復雜的業務邏輯;

## 二、應用場景
這里實現了自己的網絡服務中間容器,那么,所有的需要通過網絡協議實現的業務監控,報文監控和行為監控等都可以實現了;
例如,流量統計、限速、安全行為審計、數據抓包分析、網絡安全監控等,都可以在這個容器中實現;
## 三、二次開發
平臺提供了一個定制業務干預的接口UniFullResponseIntercept,只要實現它,并將實現類配置到配置文件中server.proxyserver.logic.clazz即可;
下面舉實際例子(也是平臺內置的默認實現)來說,
```
public class DefaultLogic extends UniFullResponseIntercept
{
@Override
public boolean match(HttpRequest httpRequest, HttpResponse httpResponse, HttpProxyInterceptPipeline pipeline)
{
return ProxyServerUtil.isCurrentResponseJson(httpResponse);// HttpUtil.checkUrl(pipeline.getHttpRequest(), ".*jinritemai.com.*") && HttpUtil.isHtml(httpRequest, httpResponse);
}
@Override
public void handleResponse(HttpRequest httpRequest, FullHttpResponse httpResponse, HttpProxyInterceptPipeline pipeline)
{
ProxyLog log = new ProxyLog();
log.setGENERATE_TIME(DateUtil.getDateStr(100));
log.setRESPONSE_BODY(httpResponse.content().toString(Charset.defaultCharset()));
log.setRESPONSE_HEADER(httpResponse.headers().toString());
log.setRQEUST_ADDR(httpRequest.uri());
log.setRQEUST_HEADER(httpRequest.headers().toString());
serviceLocator.getTransactionalDao().add(log);
}
}
```
納入配置:
```
server.proxyserver.logic.clazz=org.wbase.framework.server.proxy.logic.DefaultLogic
```
>[info] 上述默認實現,就是把代理服務器中,所有客戶端請求的目標服務器網站的數據包記錄下來到日志表中;
## 四、配置項
平臺對代理服務器,設定了如下配置項;
```
server.proxyserver.loadedctx=
server.proxyserver.loglevel=warn
server.proxyserver.port=9999
server.proxyserver.cert.download.enable=false
server.proxyserver.catch.content.type=json
server.proxyserver.logic.clazz=org.wbase.framework.server.proxy.logic.DefaultLogic
server.proxyserver.log.keep.timelimit=5
server.proxyserver.preproxy.enable=false
server.proxyserver.preproxy.type=http
server.proxyserver.preproxy.host=127.0.0.1
server.proxyserver.preproxy.port=3309
```
server.proxyserver.port,設定當前代理服務器運行的端口;
>[danger]
> 1、支持前置代理,就是代理服務器自身,使用另外一個代理服務器;
> 2、基于前置代理,可以實現代理級聯(理論上支持無限級級聯,但實際支持一級就能解決集群問題),實現代理集群了;
## 五、PC瀏覽器使用代理服務器
首先、瀏覽器共享代理設置,如

地址填寫當前您運行代理服務器的計算機外網IP地址,端口為您上面配置項中配置的端口地址;
然后、要把證書導入到客戶端的瀏覽器中受信任機構證書中去;




這里,需要導入證書,那么這個證書從哪里獲取呢?
```
http://代理服務器IP:代理服務器端口
```

即可下載該證書了;
到這里,就完成了完整的使用流程,當您的瀏覽器配置好代理服務器之后,訪問的所有數據,都會留下記錄了;
## 六、手機應用使用代理服務器
### **快速開始**

下載證書:訪問PC端部署的Fiddler,通過手機瀏覽器,訪問地址:
http://【fiddler電腦IP地址】:【fiddler設置的端口號】,例如本例中的http://192.168.253.1:8888;


安裝證書:
手機打開設置—安全和隱私—憑據存儲—從SD卡安裝,選擇步驟4中下載的證書,進行安裝,完成;或者是直接點擊證書,命名,即可;
設置完畢,通過手機打開應用,就能被抓包了;
> 特別注意:
> Android 7以及以上,系統不再信任用戶安裝的證書,Android 7之前的版本把CA安裝到用戶證書下即可,所以為了能正常抓包,需要把ca證書安裝到系統證書下;
### **SSL PINNING**
SSL PINNING技術在開發時就將服務端證書一塊打包到客戶端里。這樣在HTTPS建立時與服務端返回的證書比對一致性,進而識別出中間人攻擊后直接在客戶端側中止連接;
實際上,即使是這樣,也是有辦法解決的;
> 如:root安卓機,然后安裝Xposed和其JustTrustMe,再進行代理設置抓包即可,相對來說,麻煩一點;參考:[SSLPinning](%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1/SSLPinning.md)
## 七、其他
證書及https的知識,可以參考:
[https](%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1/https.md)
- 前言
- 01、系統平臺
- 系統管理
- 組織類型
- 單位管理
- 基本功能
- SAAS功能
- 組織管理
- 角色管理
- 人員管理
- 賬號管理
- 賬戶體系
- 賬號綁定
- 賬號鎖定
- 團隊管理
- 模板管理
- 補丁管理
- 字段管理
- 靜態字典
- 動態字典
- 系統配置
- 菜單配置
- 路由配置
- 編碼規則
- 訪問控制
- 系統參數
- 字典配置
- 參數定義
- 參數配置
- 屬性定義
- 屬性設置
- 樹形定義
- 樹形設置
- 系統監控
- 業務維護
- 工作監控
- 調度監控
- 導入監控
- 日志管理
- 在線監控
- 附件管理
- 附件監控
- 附件應用
- 附件授權
- 上傳監控
- 字段監控
- 系統提醒
- 場景配置
- 事件監控
- 提醒記錄
- 事件歷史
- 日期設置
- 節假日期
- 工作時間
- 日歷編制
- 工作日歷
- 開放平臺
- 微信應用
- 配置信息
- 更新菜單
- 釘釘應用
- 配置信息
- 開放服務
- 應用設置
- 服務管理
- 請求監控
- 請求跟蹤
- 移動應用
- 發布管理
- 導航菜單
- 個人管理
- 個人資料
- 內部消息
- 短信中心
- 流程管理
- 流程定義
- 流程環節
- 處理人
- 流程提醒
- 流程簽收
- 流程目錄
- 流程微調
- 轉移動作
- 定義校驗
- 流程綁定
- 流程實體設定
- 單業務多流程
- 動態表單綁定
- 環節字段設定
- 轉移路由設定
- 流程監控
- 流程催辦
- 流程會話
- 流程啟動
- 通用待辦
- 流程驅動
- 通用已辦
- 示范實例
- 流程啟動
- 流程待辦
- 流程已辦
- 常見問題
- 表單管理
- 預留字段
- 字段定義
- 業務應用
- 動態輔表
- 輔表定義
- 輔表應用
- 輔表監控
- 動態主表
- 主表定義
- 業務定義
- 元數據
- 產生機制
- 應用場景
- 02、技術平臺
- 重要組件
- 表單引擎
- 流程引擎
- 基礎設施
- 系統安全
- 服務集成
- 核心組件
- 核心平臺
- 調度容器
- 代碼調試
- 相關配置
- 常見問題
- 多線程
- 工作容器
- 開放服務
- 富客戶端
- 代理容器
- https
- SSLPinning
- 03、手機應用
- 參數配置
- 技術平臺
- 功能設計
- 系統功能
- 應用升級
- 業務模塊
- 04、微信應用
- 參數配置
- 多公眾號
- 技術平臺
- 業務功能
- 平臺功能
- 微信客服
- 微信公號
- 05、開放服務
- 接入示例
- 實施方案
- nginx安裝
- nginx配置
- nginx運行
- nginx限流
- 實現方案
- 業務操作
- 代碼示意
- 06、常見問題
- 性能優化
- 啟動優化
- 解決方案
- 實體操作沖突
- 算法說明
- 檢驗算法
- 注意事項
- 瀏覽器
- 插件
- 郵箱配置
- 系統維護
- 維護日志
- 維護腳本
- 開發環境
- 07、版權信息
- 平臺版權
- 產品版權
- 后記