分布式配置中心 Disconf 安装配置
前提准备
- CentOS 服务器一台
- MySQL 数据库一台
安装依赖软件
- 安装 JDK
- 安装 Git
- 安装 Maven
- 安装 Zookeeeper
- 安装 Tomcat
- 安装 Redis
- 安装 Nginx
安装jdk
- yum安装
yum install java
- 测试运行
java -version
Git 安装
- yum安装
yum install git
- 测试运行
git --version
安装maven
- 下载maven
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
- 解压
tar -zxvf apache-maven-3.6.0-bin.tar.gz
- 配置环境
- 打开 profile
vim /etc/profile
- 新增配置
#Maven Environment
export MAVEN_HOME=/software/apache-maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin
- 更新配置
source /etc/profile
- 测试
mvn -v
- 如果有私有库
Nexus
,需要配置setting.xml
文件
安装zookeeper
- 下载zookeeper
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
- 解压
tar -zxvf zookeeper-3.4.13.tar.gz
- 配置环境
- 打开 profile
vim /etc/profile
- 新增配置
#ZOOKEEPER Environment
export ZOOKEEPER_HOME=/software/zookeeper-3.4.13
export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 更新配置
source /etc/profile
- 新建数据和日志文件
mkdir -p /software/zookeeper-3.4.13/data
mkdir -p /software/zookeeper-3.4.13/log
- 修改配置文件
- 复制zookeeper配置文件
cp zoo_sample.cfg zoo.cfg
- 打开配置文件
vim zoo.cfg
- 修改日志文件和数据文件地址
dataDir=/software/zookeeper-3.4.13/data
dataLogDir=/software/zookeeper-3.4.13/log
- 测试
zkServer.sh start
安装 Tomcat 9
- 下载tomcat9
wget http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz
- 解压 tomcat
tar -xzvf apache-tomcat-9.0.13.tar.gz
- 配置环境
- 打开 profile
vim /etc/profile
- 新增配置
#TOMCAT Environment
export CATALINA_HOME=/software/apache-tomcat-9.0.13
export CATALINA_BASE=/software/apache-tomcat-9.0.13
- 更新配置
source /etc/profile
- Tomcat添加启动参数
vi $CATALINA_HOME/bin/catalina.sh
- 位置cygwin=false前。
JAVA_OPTS="server Xms256m Xmx512m XX: PermSize=64M XX: MaxPermSize=128m"
- 开机自启动tomcat
- 在/etc/init.d下新建一个文件tomcat
vim /etc/init.d/tomcat
- 新增脚本
#!/bin/sh
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcatd
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
RETVAL=0
export CATALINA_HOME=/software/apache-tomcat-8.5.20
export CATALINA_BASE=/software/apache-tomcat-8.5.20
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
RETVAL=$?
echo " OK"
return $RETVAL
fi
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
sleep 1
ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
echo " OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/...
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restaring Tomcat"
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
- 这里特别提醒注意这一句ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk ‘{print $2}’|xargs kill -9,熟悉Linux命令的人应该都清楚这句话的意义,这里就简单说下前半部分,查询root用户下tomcat的进程PID,个人根据实际情况修改。
- 保存退出之后,给其增加可执行权限
chmod +x tomcat
- 设定开机启动服务
chkconfig tomcat on
- 验证:执行reboot。重启之后就会发现,Tomcat已经成功运行了。
reboot
- 脚本命令
service tomcat start
service tomcat stop
service tomcat restart
安装redis
- 安装yum
yum install redis
- 设置redis开机启动
systemctl enable redis.service
- 设置redis密码
- 打开文件
/etc/redis.conf
,找到其中的#requirepass foobared
,去掉前面的#,并把foobared改成你的密码
- 设置所有ip访问
- 打开文件
/etc/redis.conf
,找到其中的#bind 127.0.0.1
,去掉前面的#,改成bind 0.0.0.0
- 测试启动redis
systemctl start redis.service
安装nginx
- 安装yum
yum install nginx
- 设置redis开机启动
systemctl enable nginx.service
- 测试启动nginx
systemctl start nginx .service
安装 disconf
- 下载源代码
git clone https://github.com/knightliao/disconf.git
- 初始化数据库 路径:
sql/readme.md
- 0-init_table.sql
- 1-init_data.sql
- 201512/20151225.sql
- 20160701/20160701.sql
- 拷贝
/disconf-web/profile/rd/
目录下的文件,放到新建的
目录home/disconf/online-resources
,拷贝过去后修改内容
- 将application-demo.properties复制成application.properties
cp application-demo.properties application.properties
- jdbc-mysql.properties (数据库配置)
- redis-config.properties (Redis配置)
- zoo.properties (Zookeeper配置)
- application.properties (应用配置)
修改配置文件
- 注意,即使只有一个redis,也应该配置两个redis client,否则将造成内部错误。
设置War包将要被部署的地址(以下地址可自行设定):
home/disconf/war
- 构建 在deploy文件下执行,deploy.sh,bulid_java.sh 文件设置775权限
- 构建并打包
cd disconf-web
ONLINE_CONFIG_PATH=/home/disconf/online-resources
WAR_ROOT_PATH=/home/disconf/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
sh deploy/deploy.sh
这样会在 /home/disconf/war 生成以下结果:
- disconf-web.war
- html
- META-INF
- WEB-INF
- 部署War
修改Tomncat
的server.xml
文件,在Host结点下设定Context:
<Context path="" docBase="/home/disconf/war"></Context>
- 并设置端口为: 8015
- 部署前端Nginx
新建配置文件disconf.conf
upstream disconf {
server 127.0.0.1:8015;
}
server {
listen 8081;
server_name disconf.com;
access_log /home/disconf/access.log;
error_log /home/disconf/error.log;
location / {
root /home/disconf/war/html;
if ($query_string) {
expires max;
}
}
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;
}
}
- 关于host
- 这里的 host 设置成 disconf.com (可以自定义),但它 必须与 application.properties 里的domain一样。
- 启动tomcat 和 nginx
service start tomcat
service start nginx