Nacos集群部署遇到的坑

本文详细描述了一名开发者在搭建SpringCloud Gateway与Nacos集群环境时遇到的问题,涉及IP配置、端口问题、集群负载均衡及解决步骤,最终通过调整配置和修复网络问题确保了系统的正常运行。

一、异常问题

nacos集群的各个节点启动正常,可视化页面可以正常访问,而且集群也确实生效了

但是spring cloud网关项目启动的时候抛出异常如下:

1、 server is DOWN now, please try again later!

2、failed to req API:/nacos/v1/ns/instance after all servers([192.168.168.41:7766]) tried: ErrCode:503, ErrMsg:server is DOWN now, please try again later!

以下是集群的架构

niginx 192.168.168.41:7766
nacos 192.168.168.5:8848
nacos 192.168.168.5:8848
nacos 192.168.168.5:8848

二、定位和解决问题

1、检测nacos内置代码读取到的本机ip是192.XX.XX.XX还是127.0.0.1,因为我们的nacos/conf/cluster.conf内配置的是192.XX.XX.XX,如果读取到127.0.0.1会导致异常情况。

在每个集群节点执行hostname -i,若输出内容为127.0.0.1则执行hostname mName,输出本机内网ip则可以不用管。

2、我们知道8848是项目访问nacos的默认端口,但是nacos各个节点直接的链接使用的是7848端口。我们可以查看nacos/logs/alipay-jraft.log发现如下报错

ERROR Fail to connect 192.168.168.5:7848, remoting exception: java.util.concurrent.ExecutionException: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception.

此时我们将每个节点的7848端口打开即可:

firewall-cmd --zone=public --add-port=7848/tcp --permanent

firewall-cmd --reload

3、重启nacos节点

把每个节点的nacos/data文件夹全部删除,然后重启nacos服务

三、验证

将nginx监听的端口配置到网关配置文件,启动成功

四、配置文件内容

nginx配置:

worker_processes  1; 
 
events { 
    worker_connections  1024; 
} 
 
http { 
    include       mime.types; 
    default_type  application/octet-stream; 
 
    sendfile        on; 
 
    keepalive_timeout  65; 
 
    #nacos集群负载均衡 
    upstream nacos-cluster { 
        server 192.168.168.3:8848; 
        server 192.168.168.5:8848; 
        server 192.168.168.4:8848; 
    } 
 
    server { 
        listen       7766; 
        server_name  192.168.168.41; 
 
        location / { 
            #root   html; 
            #index  index.html index.htm; 
            proxy_pass http://nacos-cluster; 
			proxy_set_header Host $http_host;
        } 
 
        error_
<think>嗯,用户想在阿里云ECS服务器上安装Nacos服务,我得帮他们一步步理清楚步骤。首先,我需要回忆一下Nacos的安装方法,可能有两种:直接安装包或者用Docker。用户的问题里提到了安装包和Docker两种方式,所以应该都涵盖进去。 先看引用里的信息,引用[1]提到用安装包安装,版本2.0.3,步骤包括下载安装包、配置、启动。引用[2]是关于Docker安装的步骤,包括拉镜像、启动容器。引用[3]提到开放端口的注意事项和检查工具。所以回答中需要包括这两种安装方式,以及端口配置和检查。 首先,安装包方式。用户可能对Linux操作不太熟悉,所以步骤要详细。比如下载安装包,解压,配置数据库(如果需要),修改配置文件,然后启动。记得要提到开放端口,比如8848、9848这些,阿里云的安全组设置很重要,否则可能无法访问。 然后是Docker方式,可能更简单一些。需要安装Docker,拉取Nacos镜像,然后运行容器,指定端口和环境变量。同样要提醒安全组开放端口,还有挂载配置文件到宿主机,方便修改。 接下来是验证安装,用curl检查或者访问web界面。这部分需要明确告诉用户怎么操作,比如访问http://服务器IP:8848/nacos,用默认账号登录。 注意事项方面,内存调整、集群部署、备份配置这些可能用户会遇到的问题。比如单机模式需要加参数,集群要配置数据库和节点信息。还要提到日志的位置,方便用户排查问题。 相关问题部分,需要根据用户可能的后续问题来设计,比如如何配置集群、如何修改密码、如何与Spring Cloud集成,这些都是常见的后续步骤。还有安全组配置的具体方法,用户可能需要进一步指导。 需要确保所有的命令和路径正确,比如解压命令tar -zxvf,Docker的运行命令参数是否正确。特别是数据库配置部分,如果用户使用MySQL,需要修改application.properties里的连接信息,这部分要详细说明。 另外,用户可能遇到的,比如端口没开放,导致无法访问,所以引用[3]里的端口检查工具要提到。还有Docker安装时的日志查看方法,帮助用户自己排查问题。 最后,整个回答结构要清晰,分步骤,用代码块标注命令,这样用户容易复制执行。同时注意用中文,避免术语混淆,确保用户能一步步跟着操作。</think>### 在阿里云ECS服务器上部署Nacos服务的详细方法 #### 一、通过安装包部署(单机模式) 1. **下载安装包** 访问Nacos GitHub Release页面[^1],选择对应版本(例如2.0.3): ```bash wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz ``` 2. **解压并配置** ```bash tar -zxvf nacos-server-2.0.3.tar.gz cd nacos/conf ``` - 修改数据库配置(若需持久化): 编辑`application.properties`,取消注释并填写MySQL信息: ```properties spring.datasource.platform=mysql db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8 db.user=root db.password=your_password ``` 3. **启动服务** ```bash cd ../bin sh startup.sh -m standalone # 单机模式启动 ``` 4. **开放安全组端口** 在阿里云控制台安全组中添加规则: - TCP: 8848(HTTP API/控制台) - TCP: 9848(gRPC通信)[^3] --- #### 二、通过Docker部署(推荐) 1. **安装Docker** 若未安装Docker,先执行: ```bash curl -fsSL https://get.docker.com | bash -s docker ``` 2. **拉取Nacos镜像** ```bash docker pull nacos/nacos-server:2.0.3 ``` 3. **启动容器** ```bash docker run -d \ --name nacos \ -p 8848:8848 \ -p 9848:9848 \ -e MODE=standalone \ -v /opt/nacos/logs:/home/nacos/logs \ nacos/nacos-server:2.0.3 ``` --- #### 三、验证安装 1. **访问控制台** 浏览器打开 `http://<服务器公网IP>:8848/nacos`,使用默认账号`nacos/nacos`登录。 2. **检查端口连通性** 使用在线工具如[端口检测网站](https://www.yougetsignal.com/tools/open-ports/)确认8848端口开放[^3]。 --- #### 注意事项 1. **内存调整** 修改`bin/startup.sh`中的JVM参数(默认`-Xms512m -Xmx512m`)。 2. **集群部署** 需配置多节点IP列表(`conf/cluster.conf`)和统一数据库。 3. **配置文件备份** 建议将`conf/application.properties`和`conf/cluster.conf`备份到外部目录。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值