服务注册不到Nginx代理的Nacos集群上的问题(已解决)

准备工作:

1. 数据库(mysq8.0)

2. nacos 2.2.0(三台)

3. nginx 1.9.9(用于代理nacos)

所需依赖的版本信息如下:

<java.version>17</java.version>
<spring-boot.version>2.7.6</spring-boot.version>

<spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>

<spring-cloud.version>2021.0.3</spring-cloud.version>

这里我的mysql和nginx放在了windows下,三台nacos放在了一台虚拟机上(通过修改端口号来区分)

它们的安装这里就不在细讲,只是讲一下nacos集群的配置以及nginx的代理。

nacos的配置:

1. cluster.conf文件

三个nacos的cluster.conf文件都是相同的的配置,上面是三台nacos的 ip+port。

2. application.properties文件

 修改nacos的端口,这里我的端口分别是 8848,8850,8852(注意端口不要连续)

 上面标记的是需要配置的关键点,注意首先要创建名为 nacos的数据库,然后再把nacos中提供的sql文件访问navicate(mysql客户端)中运行,生成一些表结构。

运行这个以mysql开头的sql文件。

3. nacos启动文件 startup.sh

 如果虚拟机内存较小可以修改一下上面的三个参数。

4. 进入到startup.sh所在的目录下,启动nacos, 使用  ./startup.sh 命令,如果出现启动失败,可能需要nacos下的data目录删除(其中一种启动失败原因的解决办法)。

5. 访问路径 http://192.168.193.104:8848/nacos/ ,查看集群是否搭建成功。

 出现上图结果说明,nacos集群搭建成功。

nginx的配置:

1. 修改nginx.conf文件

 以上就配置好了 nginx对nacos集群的代理。

然后访问 http://127.0.0.1:8999/nacos/  ,这里ip地址和端口是nginx的ip和监听的端口。

如果能够正常访问到nacos的客户端,就说明代理成功了。

服务的注册:

springboot程序中 application.yml的配置信息

server:
  port: 8001
spring:
  application:
    name: order-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8999  # 注册到nginx的代理地址
        username: nacos
        password: nacos

启动项目,这是会报下面的错误。

报错信息如下:

 这是由于nacos 2.0.0 新增了gRPC的通信方式。官网说明如下:

所以nginx 对nacos集群的代理方式有所改变,对 nginx.conf 文件的修改如下:

# nacos的grpc协议配置
stream {
	upstream nacoscluster-grpc{
		# nacos2版本,grpc端口与要比主端口多1000,主端口为8140、8550、8960
		server 192.168.193.104:9848 weight=1;
		server 192.168.193.104:9850 weight=1;
		server 192.168.193.104:9852 weight=1;
	}
	server{
		listen 9999;
		proxy_pass nacoscluster-grpc;
	}
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	
	upstream nacos-cluster { 
		server 192.168.193.104:8848;
		server 192.168.193.104:8850;
		server 192.168.193.104:8852;
   }
   
    server {
	
        listen       8999;
        server_name  localhost;
		
        location /nacos/ {
            proxy_pass http://nacos-cluster;
        }
	}

}

注意这里的stream模块只有在 nginx1.9.0 之后才能使用。

最后我们重新启动nginx,再次访问    http://127.0.0.1:8999/nacos/

  

 服务列表出现我们注册的服务,访问成功。

 

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
为了实现nginxnacos集群的反向代理和负载均衡,您需要按照以下步骤进行配置: 1. 首先,您需要将nacos集群的节点配置到nginx的配置文件中。在文件`/etc/nginx/nginx.conf`中,添加以下代码段来定义nacos集群的节点: ``` upstream nacoscluster{ server 127.0.0.1:8848; server 127.0.0.1:8850; server 127.0.0.1:8852; } ``` 这里的三个节点分别是nacos集群中的三个实例的IP和端口。您可以根据实际情况进行修改。 2. 接下来,在同一个文件中,在`server`块中添加以下代码段来配置反向代理和负载均衡: ``` server { listen 8090; // 配置nginx监听的端口号 server_name localhost; // 配置nginx的域名或IP location /nacos/ { proxy_pass http://nacoscluster/nacos/; // 配置代理nacos集群的路径 } } ``` 请确保`listen`指令中的端口号与您实际使用的端口号一致,并根据需要修改`server_name`指令。`location`指令中的路径 `/nacos/` 是您希望代理nacos集群的路径,您可以根据实际情况进行修改。 3. 保存并关闭文件后,重启nginx服务以使配置生效。您可以使用以下命令来启动或停止nginx服务: ``` 启动:systemctl start nginx.service 停止:systemctl stop nginx.service ``` 现在,您已经成功配置了nginx反向代理和负载均衡到nacos集群。您可以通过访问`http://localhost:8090/nacos/`来访问nacos集群。 请注意,以上配置仅供参考,您需要根据您的实际情况进行修改。另外,请确保您已经正确安装并配置了nacosnginx,并且端口号和IP地址等信息正确无误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [(1)nacos搭建集群模式,利用nginx做反向代理和负载均衡](https://blog.csdn.net/weixin_46855885/article/details/123957842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [nacos集群部署+nginx做负载均衡反向代理](https://blog.csdn.net/ljfgyy0205/article/details/128149586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值