搭建nacos2.X集群步骤及遇到的问题
首先要单机版+mysql持久化没有问题,这里可以参考官网
由于是在一台服务器上搭建,所以需要复制3份nacos
1、复制完后修改conf/application.properties的端口信息,默认的是server.port=8848
注意点一:由于nacos2.x后新增了两个grpc的端口,所以修改的时候3个端口不能连续,要不然后造成端口冲突
所以说这里默认为8848的话,就会占用8848、9848、9849三个端口。所以这里建议三个nacos分别修改成如下
8648、8748、8848
2、配置集群节点信息
配置文件在conf目录下的cluster.conf.example文件,需要重命名成cluster.conf。然后在里面加入如下信息
自己ip:8648
自己ip:8748
自己ip:8848
三个nacos都修改后,在bin下启动,直接执行startup.sh。到这里按理说就完了,访问控制台也能看到每个节点的信息,但是第二个问题来了
注意点二:由于我是在阿里云上配置的nacos,阿里云上有公网和内网地址。我这里配置成公网后,每个nacos的cluster.conf文件中,都会默认出现一个内网的地址,导致nacos日志一直报错,后来看到别人配的后才明白原来要配置成内网地址,如果是不同的服务器那就不存在这个问题了
修改完后成功启动,控制台中显示的节点信息也都正确,都是3个
3、接下来配置nginx转发
注意点三:在第一点提到了新增的两个端口,所以在配置nginx的时候也要特别注意,要不然就会控制台能访问,而实际注册不到nacos上
详细的配置如下
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#改动一
upstream nacos{
server 101.42.239.36:8648;
server 101.42.239.36:8748;
server 101.42.239.36:8848;
}
#改动二
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://nacos;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
#改动三
stream {
upstream nacos2{
server 101.42.239.36:9648;
server 101.42.239.36:9748;
server 101.42.239.36:9848;
}
upstream nacos3{
server 101.42.239.36:9649;
server 101.42.239.36:9749;
server 101.42.239.36:9849;
}
#由于nacos是根据端口去偏移grpc端口的。所以需要在8080的基础上偏移1000、1001
server {
listen 9080 so_keepalive=on;
tcp_nodelay on;
proxy_pass nacos2;
}
server {
listen 9081 so_keepalive=on;
tcp_nodelay on;
proxy_pass nacos3;
}
}
注意点四:由于的我nginx编译安装的时候是默认安装,所以在使用上面配置文件的时候就会报错,错误信息在下面。所以需要重新编译nginx,添加stream模块
#报错信息
unknown directive “stream” in /usr/local/nginx
#重新编译nginx,加上stream
./configure --with-stream
make
make install
最后启动nginx,客户端重启服务,查看nacos控制台,服务注册成功,就大功告成了。