Disconf(二)disconf-web
一.介紹
disconf-web:提供了前後端分離的web架構
分佈式配置Web平臺服務 模塊
推薦使用最新的Chrome或Firefox瀏覽.
注:由於迭代開發快速多變的原因,當前UI可能與下圖略有改變。
二.開放API
- 讓開發者具有自定義定製web控制檯界面的能力: Tutorial12 web開放API
三.搭取後的運行界面
Start deploying
-
安裝Mysql(Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using EditLine wrapper)
-
安裝Tomcat(apache-tomcat-7.0.50)
二.下載源碼:https://github.com/knightliao/disconf
一共分爲三個模塊:
-
disconf-client是客戶端代碼
-
disconf-core是核心模塊
-
disconf-web是disconf的頁面管理控制檯
本部分重點介紹disconf-web,優先部署disconf-web
三.準備配置
將配置文件放到此地址目錄下(地址可以自行定):E:\learn\disconf\home\work\dsp\disconf-rd\online-resources
配置文件清單:
<span style="font-family:FangSong_GB2312;font-size:14px;">- jdbc-mysql.properties (數據庫配置)
- redis-config.properties (Redis配置)
- zoo.properties (Zookeeper配置)
- application.properties (應用配置</span>
注意,記得執行將application-demo.properties複製成application.properties:設置War包將要被部署的地址(地址可自行設定):E:\learn\disconf\home\work\dsp\disconf-rd\war
構建
ONLINE_CONFIG_PATH=/home/work/dsp/disconf-rd/online-resources
WAR_ROOT_PATH=/home/work/dsp/disconf-rd/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
cd disconf-web
sh deploy/deploy.sh
生成結果:E:\learn\disconf\home\work\dsp\disconf-rd\war
-disconf-web.war
-html
-META-INF
-WEB-INF
-temp
初始化數據庫:
可以參考 sql/readme.md 來進行數據庫的初始化。注意順序執行 0-init_table.sql
1-init_data.sql
201512/20151225.sql
裏面默認有6個用戶(請注意線上環境刪除這些用戶以避免潛在的安全問題)
name | pwd |
---|---|
admin | admin |
testUser1 | MhxzKhl9209 |
testUser2 | MhxzKhl167 |
testUser3 | MhxzKhl783 |
testUser4 | MhxzKhl8758 |
testUser5 | MhxzKhl112 |
如果想自己設置初始化的用戶信息,可以參考代碼來自己生成用戶:
src/main/java/com/baidu/disconf/web/tools/UserCreateTools.java
部署War
修改server.xml文件,在Host結點下設定Context:
使用默認端口8080,並指定路徑<span style="font-family:Microsoft YaHei;font-size:14px;"> <Context path="/disconf" docBase="E:/learn/disconf/home/work/dsp/disconf-rd/war"/></span>
啓動Tomcat,即可
部署前端Nginx
修改nginx.conf
Server-80.config
<span style="font-family:Microsoft YaHei;font-size:14px;"> server {
listen 8150;
server_name localhost;
#charset koi8-r;
#access_log /learn/disconf/home/work/var/logs/disconf/access.log;
#error_log /learn/disconf/home/work/var/logs/disconf/error.log;
location /api {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
#proxy_pass http://disconf;
proxy_pass http://127.0.0.1:8080/disconf/api;
add_header From disconf;
proxy_cookie_path /disconf/ /;
proxy_set_header Cookie $http_cookie;
}
location / {
root E:\learn\disconf\home\work\dsp\disconf-rd\war\html;
index index.php index.html index.htm; #定義首頁索引文件的名稱
}
</span>
業務功能
- 支持用戶登錄/登出
- 瀏覽配置
- 按 APP/版本/環境 選擇
- 修改配置
- 修改配置項
- 修改配置文件
- 新建配置
- 新建配置項
- 新建配置文件
- 新建APP
架構方案
Nginx(處理靜態請求) + Tomcat(處理動態請求)
- 後端
- SpringMvc(3.1.2+)
- Jdbc-Template
- Mysql
- RestFul API
- Redis for user login/logout
- H2內存數據庫測試方案/Junit/SpringTest
- 前端
- HTML
- Jquery(1.10.4):JS工具集合
- Bootstrap(2.3.2):界面UI
- Node(ejs/fs/eventproxy): 用於前端的HTML的模板化管理
- 前後端接口(前後端分離)
- 完全Ajax接口
- JSON
- RestFul API
參見:https://github.com/knightliao/disconf/tree/master/disconf-web