1. 安装nacos
    1. 下载nacos:https://github.com/alibaba/nacos/releases
    2. 解压:unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin
  2. 单实例启动
    解压后即可运行,默认集群模式,单实例启动如下
	Linux:startup.sh -m standalone 
	windows:修改startup.cmd 里面28行为set MODE="standalone" 然后双击startup.cmd启动
	访问地址:http://localhost:8848/nacos/index.html 账号密码nacos/nacos	
  1. 集群部署
    1. 环境
      Nginx
      Nacos 集群(至少三个实例)
      mysql数据库(取代 Nacos 内嵌数据库)
    2. 切换数据库
      找的nacos安装目录下conf文件夹里面的nacos-mysql.sql
      在 MySQL 实例创建 nacos_config 库并导入脚本
      修改application.project文件(3个实例都需要改)
    	server.port=8848#端口,部署在同一服务器需用不同端口,注意2.0以后有个端口偏移量,同一主机连续端口必有一个被端口占用,最少间隔两个端口如8848 8850 8852 用8848 8849 8850就会导致端口占用
    
    	nacos.inetutils.ip-address=192.168.0.155 #本地IP多个需填入需要的IP ,不然启动后会自动在cluster.conf里面创建新的VIP
    
    	spring.datasource.platform=mysql 
    
    	#这里数据库地址需用服务器外网,内网出现过数据库连不上的情况,不知道是不是那里配错了,用外网就没问题
    	db.num=1 
    	db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC 
    	db.user=root 
    	db.password=123456 
    
    1. nacos 集群配置
      修改 cluster.conf 文件 将3个实例IP填入
    	#注意不要用127.0.0.1,会出现各种问题
    	192.168.15.145 
    	192.168.15.147 
    	192.168.15.148 
    

    至此关于 nacos 的配置结束了,可以尝试以集群模式启动三个 nacos 实例了,以集群模式分别启动三个 nacos 实例,尝试访问 nacos 管理页,测试三个实例是否正常,查看集群列表/节点管理里面是否有配置的3个节点

  2. nginx配置
#注意这个是用stream 转发端口,跟http同级
stream {
    upstream nacosgrpcc {
	server 192.168.15.145:8848;
        server 192.168.15.147:8848; 
        server 192.168.15.148:8848; 
    }
	
     upstream nacosgrpcc2 {
	server 192.168.15.145:9848; 
        server 192.168.15.147:9848; 
        server 192.168.15.148:9848; 
    }
	
    server {
        listen 8848;
        proxy_connect_timeout 300s;
        proxy_timeout 300s;
        proxy_pass nacosgrpcc;
    }
    server {
	listen 9848;
	proxy_connect_timeout 300s;
	proxy_timeout 300s;
	proxy_pass nacosgrpcc2;
    }
}

代理9848的原因,不代理网页可以访问,但是springboot无法注册上

#nacos客户端升级为2.x版本后,新增了gRPC的通信方式,新增了两个端口。这两个端口在nacos原先的端口上(默认8848),进行一定偏移量自动生成.。
端口与主端口的偏移量描述
98481000客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
98491001服务端gRPC请求服务端端口,用于服务间同步等
  1. springboot连接
    引入jar包
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

bootstarp.yml配置

server:
  port: 8199

spring:
  application:
    name: nacos
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        #nacos注册地址 nginx代理的地址
        server-addr: localhost:8848
        #注册服务的ip,默认是内网ip,当只需要内网访问时可以注释掉
        ip: localhost
        #命名空间
        namespace: 5709e589-96d1-42ed-b2ca-7fe31b7d47f1
      config:
        #nacos配置中心地址 nginx代理的地址
        server-addr: localhost:8848
        file-extension: yml
        namespace: 5709e589-96d1-42ed-b2ca-7fe31b7d47f1
	如报错:Nacos cluster is running with 1.X mode, can’t accept gRPC request temporarily. Please check the server status or close Double write to force open 2.0 mode. Detail https://nacos.io/en-us/docs/2.0.0-upgrading.html
	解决办法:
	关闭双写
	正常模式curl -X PUT 'localhost:8848/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false'
	鉴权模式:
	密码登录:curl -X POST '127.0.0.1:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'
	加上accessToken关闭双写:curl -X PUT 'localhost:8848/nacos/v1/ns/operator/switches?accessToken=实际的token值&entry=doubleWriteEnabled&value=false'
  1. 自启动
    1. 自启服务需要手动配置JAVA_HOME路径路径,修改 /bin/startup.sh文件
    	#1、查询jdk配置
    	echo $JAVA_HOME
    	# 2、结果
    	/usr/local/java/jdk1.8.0_131
    
    	# 修改配置
    	vim start.sh
    
    	# 内容
    	[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/java/jdk1.8.0_131		
    
    1. 创建自启服务
    	#加入内容
    	vim /usr/lib/systemd/system/nacos.service
    
    	[Unit]
    	Description=nacos
    	After=network.target
    
    	[Service]
    	Type=forking
    	#单节点方式启动,填写实际路径
    	#ExecStart=/opt/cloud/nacos/bin/startup.sh -m standalone
    	#集群方式启动-外部数据源启动,填写实际路径
    	ExecStart=/opt/cloud/nacos/bin/startup.sh
    
    	ExecStop=/opt/module/nacos/bin/shutdown.sh
    	PrivateTmp=true
    
    	[Install]
    	WantedBy=multi-user.target
    
    
    	#加入自启
    	systemctl daemon-reload
    	systemctl enable nacos.service
    
    	#启动
    	systemctl start  nacos
    	#停止
    	systemctl stop  nacos
    

参考链接:
https://os.51cto.com/article/649179.html
https://blog.csdn.net/zhuocailing3390/article/details/123058338

Q.E.D.