依赖软件
安装Mysql
安装Tomcat (tomcat7, 必须为tomcat7,tomcat8跑不起来)
安装Nginx(nginx/1.5.3 及以上版本)
安装 zookeeeper (zookeeper-3.4.10, 注意zookeeper版本必须和pom中引入zookeeper包的版本相同)
安装 Redis (3.2.12, 需要搭建主从)
请使用单独的VPS部署disconf项目以及相关中间件
搭建redis主从
- 下载安装包
wget http://download.redis.io/releases/redis-3.2.12.tar.gz
搭建redis主从,一主一从即可,详细部署步骤可以参考:
https://blog.youkuaiyun.com/github_26672553/article/details/69568259
搭建zookeeper
1.下载安装包
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
- 解压: tar -zxvf zookeeper-3.4.10.tar.gz /usr/local/
- 修改zookeeper中conf目录下的zoo_sample.cfg为zoo.cfg
- 编辑 zoo.cfg,修改dataDir为 /usr/local/zookeeper-3.4.10/data 默认端口为2181
- 启动zookeeper,在bin目录下执行
./zkServer.sh start
./zkServer.sh status(查看zookeeper状态; ps -ef|grep zookeeper)
构建disconf
- 初始化数据库(注意顺序执行):
- 0-init_table.sql create db,tables - 1-init_data.sql create data - 201512/20151225.sql patch |
2. 设置disconf war包将要被部署的地址(以下地址可自行设定):
/home/work/disconf-rd/war
3. 从github下disconf-stable项目
在/disconf-web/profile/rd/下拷贝配置文件到此地址目录下(以下地址可自行设定):
/home/work/disconf-rd/online-resources |
配置文件包括:
- jdbc-mysql.properties (数据库配置)
- redis-config.properties (Redis配置,主要用于web登录使用)
- zoo.properties (Zookeeper配置)
- application.properties (应用配置)
### jdbc-mysql.properties 配置 (编辑红色字体部分) jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.db_0.url=jdbc:mysql://172.28.17.26:3306/disconf?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=false jdbc.db_0.username=root jdbc.db_0.password=123456 jdbc.maxPoolSize=20 jdbc.minPoolSize=10 jdbc.initialPoolSize=10 jdbc.idleConnectionTestPeriod=1200 jdbc.maxIdleTime=3600
### redis-config.properties 配置 (编辑红色字体部分) redis.group1.retry.times=2 redis.group1.client1.name=BeidouRedis1 redis.group1.client1.host=172.28.17.26 redis.group1.client1.port=7000 redis.group1.client1.timeout=5000 redis.group1.client1.password=123456
redis.group1.client2.name=BeidouRedis2 redis.group1.client2.host=172.28.17.26 redis.group1.client2.port=7001 redis.group1.client2.timeout=5000 redis.group1.client2.password=123456 redis.evictor.delayCheckSeconds=300 redis.evictor.checkPeriodSeconds=30 redis.evictor.failedTimesToBeTickOut=6
### application.properties 配置 (编辑红色字体部分) # # 服务器的domain # domain=disconf.com # # 邮箱设置(配置发送者邮箱, 配置修改会发送邮件,若没有申请好可以暂时不设置) # EMAIL_MONITOR_ON = true EMAIL_HOST = smtp.163.com EMAIL_HOST_PASSWORD = password EMAIL_HOST_USER = sender@163.com EMAIL_PORT = 25 DEFAULT_FROM_EMAIL = disconf@163.com
# # 定时校验中心的配置与所有客户端配置的一致性 # CHECK_CONSISTENCY_ON= true ### zoo.properties 配置 (编辑红色字体部分) hosts=10.128.21.89:8581,10.128.21.89:8582,10.128.21.89:8583 # zookeeper的前缀路径名 zookeeper_url_prefix=/disconf |
4. 编辑/etc/profile, 在文件末尾加入如下配置(目录可以自行设定,用于存放disconf项目的部署文件)
ONLINE_CONFIG_PATH=/home/work/disconf-rd/online-resources WAR_ROOT_PATH=/home/work/disconf-rd/war export ONLINE_CONFIG_PATH export WAR_ROOT_PATH |
执行source /etc/profile 使环境变量立即生效
5. 执行disconf-web项目(disconf-stable/disconf-web)下deploy.sh
cd disconf-web
sh deploy/deploy.sh
这样会在 /home/work/disconf-rd/war 生成以下结果:
-disconf-web.war
-html
-META-INF
-WEB-INF
部署War
1. 修改server.xml文件,在Host结点下设定Context:
<Context path="" docBase="/home/work/disconf-rd/war"></Context> |
并设置端口为 8015(端口可以自定义设置),启动Tomcat,即可。
2. 修改 nginx.conf
upstream disconf { server 127.0.0.1:8015; #tomcat服务器的地址 } server { listen 8091; #监听端口 server_name disconf.com; access_log /home/work/logs/access.log; error_log /home/work/logs/error.log; index index.html; location / { root /home/work/disconf-rd/war/html; #静态资源目录 index index.html; }
location ~ ^/(api|export) { 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; } } |
这里的 server_name设置成 disconf.com (可以自定义),但它必须与application.properties 里的domain一样。
验证部署
浏览器里面输入nginx IP 加disconf监听端口即可:
输入admin/admin 进入后台
更简单的配置可以参考:
https://my.oschina.net/vincentzhao/blog/658853