Skip to content
On this page

nacos部署

Nacos官方部署文档

服务器安装JDKLinux安装JDK8

  1. 下载nacos:2.0.3版本。[下载地址](Releases · alibaba/nacos · GitHub)
  2. 上传至虚拟机服务器/data
  3. 解压:tar -zxvf nacos-server-2.0.3.tar.gz

单机部署

nacos默认是集群部署方式,数据存储默认是内存数据库H2

方式一【修改配置文件】:
cd /data/nacos/bin
vi startup.sh
export MODE="cluster"  修改为: export MODE="standalone" 
执行启动命令:./startup.sh

方式二【启动命令增加单机部署参数】:
cd /data/nacos/bin
带参数启动:./startup.sh -m standalone

查看启动效果:cat /data/nacos/logs/start.out

image-20220714223931932

浏览器访问:http://192.168.1.12:8848/nacos

  • 默认账号密码:nacos/nacos
  • 记得关闭虚拟机防火墙,否则访问不到8848端口

集群部署

官方集群部署说明 (nacos.io)

MySQL 8安装| 黄继良 ,mysql版本需要5.7+

cd /data
mkdir nacos_cluster
cp nacos-server-2.0.3.tar.gz nacos_cluster/nacos-server-2.0.3.tar.gz
cd nacos_cluster
tar -zxvf nacos-server-2.0.3.tar.gz
mv nacos nacos8849
cd nacos8849/conf
mv cluster.conf.example cluster.conf
# 修改集群配置
vi cluster.conf
	输入集群ip:port
    #example
    192.168.1.12:8849
    192.168.1.12:8851
    192.168.1.12:8853
# 使用mysql数据源,可以持久化  &  修改nacos启动端口
vi application.properties
	1. server.port=8848 修改为 server.port=8849
	2. 修改数据源:修改5个地方,如下图所示
# 在192.168.1.4服务器创建nacos数据库,并执行 conf/nacos-mysql.sql文件创建表结构
mkdir nacos8851
mkdir nacos8853
cp nacos8849/* nacos8851/ -r
cp nacos8849/* nacos8853/ -r
vi nacos8851/conf/application.properties
	修改端口为:8851
vi nacos8853/conf/application.properties
	修改端口为:8853

image-20220714233358113

  • 如果出现内存不足,修改启动脚本(bin/startup.sh)的jvm参数

JAVA_OPT="${JAVA_OPT} ‐server ‐Xms512m ‐Xmx512m ‐Xmn256 ‐XX:MetaspaceSize=64m ‐XX:MaxMetaspaceSize=128m"

  • nacos2.0+版本启动需要4个端口,所以集群部署配置的端口最好不要连续,否则启动报错《io.grpc.netty.shaded.io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address

    2.0需要4个端口
    
    server.port(默认8848)
    
    raft port: ${server.port} - 1000
    grpc port: ${server.port} + 1000
    grpc port for server: ${server.port} + 1001
  • 数据库安装在本地,想要虚拟机访问本地服务器,记得关闭本地防火墙,而且数据库(mysql的user表记得添加虚拟机可远程访问权限)

image-20220715101554510

  • 集群启动完成如下图所示

image-20220715101325636

nginx安装

使用nginx代理负载轮询转发nacos集群

nginx安装教程 | 黄继良 , 一定要根据这个教程安装,因为此教程带安装了stream,如果不安装stream,nginx就无法使用stream,而nacos2.0+版本需要TCP转发才可以连接

官方说明:

image-20220715141359369

nginx配置文件

使用8848端口代理http请求

端口10020代理TCP请求转发,此处配置10020端口,则在client连接nginx集群时就需要(10020-1000)= 9020 端口才可以连接得到,client连接如下图

image-20220715141616572

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
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;

    keepalive_timeout  65;

    #gzip  on;

     upstream nacoscluster {
     	server 192.168.1.12:8849;
    	server 192.168.1.12:8851;
     	server 192.168.1.12:8853;
     }

    server {
        listen       8848;
        server_name  localhost;
        location /nacos/ {
            proxy_pass http://nacoscluster/nacos/;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

stream {
    upstream nacosgrpcc {
        server 192.168.1.12:9849;
        server 192.168.1.12:9851;
        server 192.168.1.12:9853;
    }
 
    server {
        listen 10020;
        proxy_connect_timeout 300s;
        proxy_timeout 300s;
        proxy_pass nacosgrpcc;
    }
}
  • 配置nginx代理时,不能出现特殊字符,否则访问包400 bad request错误

    反例: upstream nacos_cluster {}

  • nginx启动成功之后,直接访问:http://192.168.1.12:8848/nacos