VIP即虚拟ip,我们可以用nginx来充当这个角色 (这里nginx就没有集群了,其实nacos也是个伪集群)
一台云服务器 系统:Centos7.7 公网ip:212.68.46.xxx 内网172.17.0.5
nacos版本:1.2.1
mysql版本:5.7
nginx版本:1.9.9
java自行安装
nacos1:172.17.0.5:3333
nacos2:172.17.0.5:4444
nacos3:172.17.0.5:5555 (内网ip)
nginx端口:1111
官网下载太慢,这里提供一个网盘下载。
nacos网盘下载
链接:https://pan.baidu.com/s/14wipsVEq6bINsmxQR7R9og
提取码:e1xa
把下载的文件放到自己的目录
使用tar -zxvf解压
进入到nacos/conf/文件夹目录下,有个nacos-mysql.sql文件
在服务器上创建nacos_config数据库,并把上面sql导入进去,执行后数据库有如下表
修改nacos/conf/目录下的application.properties文件,因为nacos自带嵌入式数据库,在集群分布式部署下每个nacos都使用自己的数据库是不太好的,因此我们配置mysql,添加如下信息。(可以先把原文件备份一下再修改)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.2:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=your password
mysql8的url和mysql5的url写法是不同的:
##下面是官网给的mysql5写法
db.url.0=jdbc:mysql://127.0.0.2:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
##mysql8要换成这样
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=UTC
mysql8的话要在nacos目录下创建/plugins/mysql目录,并放入mysql8驱动包。因为nacos用的是mysql5的驱动,从nacos的github的issues中可以看到,如果数据库要支持mysql8则需要在nacons/plugins创建mysql目录并放入mysql8驱动。
为了能让他多个端口运行,所以要进行修改,修改nacos/bin/startup.sh文件 (建议修改前还是备份一下)
注意一下这里我修改了jvm参数,因为服务器1核2G是承受不起默认的jvm参数的,所以我做出了一点修改。
cluster.conf的ip地址一定要是hostname -i 的地址,如果hostname -i地址只有127.0.0.1则需要修改/etc/hosts,方法如下
我这里改过了,所以有了内网地址。没有的话修改/etc/hosts文件
ipaddr查看自己的内网ip为172.17.0.15
查看自己的主机名,hostname
修改/etc/hosts 添加ip地址+主机名(最后一行即为新添加)
继续hostname -i 查看,有了自己的内网ip
修改nacos目录下的 conf/cluster.conf,首先进入到conf目录把cluster.conf.example复制一份名为cluster.conf文件,添加cluster.config内容 ip:port
nginx可自行安装,修改nginx的配置文件nginx.conf,使用nginx的1111端口
upstream cluster{
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
server{
listen 1111;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}
重启nginx, 命令 /usr/local/nginx/sbin/nginx -s reload
进入nacos的bin目录,分别执行命令
./startup.sh -p 3333
./startup.sh -p 4444
./startup.sh -p 5555
使用 ps -ef |grep nacos-server | grep -v grep|wc -l 查看启动的nacos数量
(如果这里不够三台的话,很可能是没配JVM参数,修改一下参数即可)
访问 公网ip:1111/nacos/#/login,出现以下页面则成功
(服务器开放对应端口,防火墙对应端口也要打开)