centos stream 8 的nacos2.x搭建集群,nginx反向代理nacos集群,haproxy反向代理nacos集群的grpc端口

nacos2.0.4下载地址

1.把nacos文件上传到centos stream环境上面

在这里插入图片描述

2.解压nacos

tar -zxvf nacos-server-2.0.4.tar.gz

在这里插入图片描述

3.移动解压后的nacos目录到自己一个新建的目录下面

mv nacos /mynacos/
cd /mynacos/
ll

在这里插入图片描述

5.自己copy三份nacos(一个虚拟机的话就复制三份,如果是三台虚拟机的话,就每个虚拟机自己一份nacos就好了,连认端口8848都不需要改)

cp -r nacos nacos18848
cp -r nacos nacos28848
cp -r nacos nacos38848

6.改application.properties

cd nacos18848
vi /mynacos/nacos18848/conf/application.properties

在这里插入图片描述

在这里插入图片描述

server.port=18848

spring.datasource.platform=MysqL
db.num=1
db.url.0=jdbc:MysqL://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456

7.改动集群配置文件

vi /mynacos/nacos18848/conf/cluster.conf

#2023-03-21T19:56:14.465
192.168.0.120:18848
192.168.0.120:28848
192.168.0.120:38848

同理需要改动nacos28848 和 nacos38848目录下面的 application.properties和cluster.conf
稍微有点不同的是 application.properties 里面的 server.port 分别改成 28848和38848

自己安装jdk8,maven,MysqL8.x,这个我就不教了
maven安装教程 可以参考https://www.cnblogs.com/xiaokangk/p/12220990.html

启动命令
sh /mynacos/nacos18848/bin/startup.sh
sh /mynacos/nacos28848/bin/startup.sh
sh /mynacos/nacos38848bin/startup.sh

关闭命令
sh /mynacos/nacos18848/bin/shutdown.sh
sh /mynacos/nacos28848/bin/shutdown.sh
sh /mynacos/nacos38848/bin/shutdown.sh

8. 安装Nginx1.21.6教程参考

https://blog.csdn.net/m0_64339281/article/details/121504281

9.编辑Nginx配置文件

[root@mycentos conf]# whereis Nginx
Nginx: /usr/local/Nginx

vi /usr/local/Nginx/conf/Nginx.conf

在这里插入图片描述

upstream cluster{
server 127.0.0.1:18848;
server 127.0.0.1:28848;
server 127.0.0.1:38848;
}
server {
listen 8848;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}

10.Nginx命令

启动Nginx命令
/usr/local/Nginx/sbin/Nginx -c /usr/local/Nginx/conf/Nginx.conf

关闭
/usr/local/Nginx/sbin/Nginx -s stop
重启
/usr/local/Nginx/sbin/Nginx -s reload

效果图:

在这里插入图片描述


nacos2.x有个大坑,你会发现现在即使是搭建nacos集群成功了,但是java程序注册服务进nacos集群中,启动时报错Connection is unregistered.或Client not connected,current status:STARTING.
官方文档也说这个坑了

在这里插入图片描述


我简单说一下,就是一个nacos启动认端口是8848,那么nacos同时也会启动9848这个grpc端口。 grpc端口 (9848)= 启动端口(8848) + 1000

同理我nacos集群启动了三个nacos 端口分别为18848,28848,38848 ,那么这三个nacos也会启动 19848,29848,39848.

因为我们已经用Nginx代理服务器的8848反向代理 三个nacos 端口分别为18848,28848,38848。

但是我们还没有 代理三个nacos端口 19848,29848,39848.

那你会问用Nginx机器的9848端口 代理 代理三个nacos端口 19848,29848,39848就可以解决问题了吧?

Nginx的grpc的功能性能很低,用了ngixn搞grpc功能还不如不用nacos2.x。

解决办法是:用haproxy来代理nacos的grpc端口。
文章太长不好看,所以我分开两篇文章了。

解决办法如下链接
https://blog.csdn.net/qq_39009944/article/details/123634837?spm=1001.2014.3001.5502

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...