Nacos安装
- 下载地址:https://github.com/alibaba/nacos/releases
- 把下载好的文件传到服务器,类似tomcat,解压之后在bin目录直接运行即可,不需要像nginx、redis安装编译安装的步骤
- 启动命令:在nacos的bin目录下输入
默认集群启动:./startup.sh
单机启动:./startup.sh -m standalone
停止命令:./shutdown.sh
集群部署
- 修改nacos里conf/下的application.properties文件,添加数据源
# db mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=password
- 修改conf/下的cluster.conf.example文件,将其命名为cluster.conf
# ip:port
127.0.0.1:8850
127.0.0.1:8851
127.0.0.1:8852
- 复制三份解压后的文件夹,修改配置后的,复制之后以上重复的步骤不用再操作
- conf/下的application.properties文件修改nacos启动端口号,默认为:server.port=8848,修改为自己设置的,三个端口号不重复,我设置的为8850,8851,8852,同理复制后的nacos文件夹可以重命名为nacos8850,nacos8851,nacos8852
- 分别的三个文件夹里的bin目录里启动nacos,命令:./startup.sh
- 输入:ip+端口号/nacos,即可打开后台页面,这里是启动了8850和8851后的效果,8852没有启动
配置Nginx负载均衡
启动了三个nacos后,需要在项目里的yml文件里写上三个nacos的地址,这里可以用nginx反向代理后,只需填一个地址就可以了
另外也可以配置一个域名,直接用这个域名就可以打开nacos的后台页面,而不需要输入:ip+端口号/nacos
nginx配置:
# nacos集群
upstream nacos-server {
server 127.0.0.1:8850;
server 127.0.0.1:8851;
server 127.0.0.1:8852;
}
# nacos集群反向代理
server {
listen 80;
server_name nacos-test.xxx.com;
location /{
proxy_pass http://nacos-server/nacos/;
}
}
配置后输入:nacos-test.xxx.com,即可直接打开nacos后台
踩过得坑
- nacos启动找不到java运行环境,which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
解决方案:参考博文 - nacos配置好java运行环境后,tomcat却不能启动了,本来tomcat是可以正常启动的
解决方案:参考博文,注意linux需要把set改为export - nginx配置好以上的配置后,通过域名却打不开。
我一直用的nginx命令是:./nginx -s reload,但是重启后通过域名却打不开nacos首页,试了很多次,后面我把nginx停了:./nginx -s stop,再打开:./nginx -s start,这时报错误信息,说我端口占用。
原来是tomcat用的是80端口,那我配置的监听80端口的域名就不行了。
解决方案:把tomcat端口改为8080,再在nginx里面配置一下反向代理到tomcat,这样不影响tomcat,再重启nginx,即可正常运行,顺便说一句,niginx出现问题,可以到nginx/logs/文件夹里面看error.log日志