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