1 Star 0 Fork 1

阿布 / nacos 部署

forked from hcsystem / nacos 部署 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Nacos 部署

一. Docker 方式部署

1. 安装 Docker 环境
bash <(curl -sSL https://dwz.cn/XOJj0Njx) -i docker
bash <(curl -sSL https://dwz.cn/XOJj0Njx) -i compose
2. Docekr 单机模式部署(embedded)
cd nacos-standalone
docker-compose up -d
3. Docekr 集群部署(embedded)
cd nacos-cluster-embedded
docker-compose up -d
4. Docekr 集群部署(mysql)
cd nacos-cluster-mysql
docker-compose up -d

二. 虚拟机方式部署

1. 安装 JDK 环境
# 创建 jdk 安装目录
mkdir -p /usr/java

# 下载解压 jdk 安装包
curl --progress-bar https://oss.hc-yun.com/mango_soft/jdk-8u211-linux-x64.tar.gz | tar xz -C /usr/java

# 配置 jdk 环境变量
cat > /etc/profile.d/jdk.sh <<'EOF'
export JAVA_HOME=/usr/java/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
EOF
2. 单机模式部署(embedded)
# 下载解压 nacos 安装包
curl --progress-bar https://ghproxy.com/https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz | tar xz -C /home

# 创建 nacos 服务
source /etc/profile.d/jdk.sh
cat > /usr/lib/systemd/system/nacos.service <<EOF
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=$JAVA_HOME"
ExecStart=/home/nacos/bin/startup.sh -m standalone
ExecStop=/home/nacos/bin/shutdown.sh
MemoryLimit=2048M
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 启动 nacos 服务 && 配置 nacos 服务开机自启动
systemctl daemon-reload
systemctl enable --now nacos.service
3. 集群模式部署(embedded)
  • nginx 节点IP: 192.168.10.74
  • nacos 节点IP: 192.168.10.71 192.168.10.72 192.168.10.73

1.Nacos 安装配置

# 下载解压 nacos 安装包
curl --progress-bar https://ghproxy.com/https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz | tar xz -C /home

# 配置 nacos (将集群内各节点服务IP与端口写入配置文件)
cat > /home/nacos/conf/cluster.conf <<'EOF'
# ip:port
192.168.10.71:8848
192.168.10.72:8848
192.168.10.73:8848
EOF

# 创建 nacos 服务
source /etc/profile.d/jdk.sh
cat > /usr/lib/systemd/system/nacos.service <<EOF
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=$JAVA_HOME"
ExecStart=/home/nacos/bin/startup.sh -p embedded
ExecStop=/home/nacos/bin/shutdown.sh
MemoryLimit=2048M
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 启动 nacos 服务 && 配置 nacos 服务开机自启动
systemctl daemon-reload
systemctl enable --now nacos.service

2.Nginx 安装配置

# 下载解压 nginx 安装包
curl -s http://oss.hc-yun.com/mango_soft/nginx-1.22.0.rpm.tgz | tar xz -C /tmp

# 安装 nginx
rpm -ivh /tmp/nginx-1.22.0/*.rpm

# 清理安装
rm -rf /tmp/nginx-1.22.0 /etc/nginx/conf.d/*

# 创建服务端口代理(http 8848)
cat > /etc/nginx/conf.d/proxy_nacos.conf <<'EOF'
upstream nacos_http {
    server 192.168.10.71:8848 fail_timeout=100s max_fails=10;
    server 192.168.10.72:8848 fail_timeout=100s max_fails=10;
    server 192.168.10.73:8848 fail_timeout=100s max_fails=10;
}

server {
    listen       80;
    server_name  localhost;

    error_log    /var/log/nginx/nacos.error.log;
    access_log   /var/log/nginx/nacos.access.log;

    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://nacos_http;
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
EOF

# nginx 配置 tcp 代理
cat >> /etc/nginx/nginx.conf <<'EOF'

stream {
    log_format tcpproxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    # tcp 代理
    include /etc/nginx/tcp.d/*.conf;
}
EOF

# 创建服务端口代理(tcp 9848)
mkdir -p /etc/nginx/tcp.d
cat > /etc/nginx/tcp.d/nacos.conf <<'EOF'
upstream nacos_grpc {
    server 192.168.10.71:9848;
    server 192.168.10.72:9848;
    server 192.168.10.73:9848;
}

server {
    listen 1080;
    proxy_pass nacos_grpc;
    proxy_connect_timeout 1h;
    proxy_timeout 1h;

    error_log    /var/log/nginx/nacos.grpc.error.log;
    access_log   /var/log/nginx/nacos.grpc.access.log tcpproxy;
}
EOF

# 启动 nginx 服务 && 配置 nginx 服务开机自启动
systemctl daemon-reload
systemctl enable --now nginx.service
4. 集群模式部署(mysql)
  • mysql 节点IP: 192.168.10.75
  • nginx 节点IP: 192.168.10.74
  • nacos 节点IP: 192.168.10.71 192.168.10.72 192.168.10.73

1.MySQL 安装配置

# 安装依赖包
yum install -y wget libaio perl numactl-libs

# 卸载 mariadb-libs
yum remove -y mariadb-libs

# 下载解压 mysql 安装包
mkdir -p /home/mysql-5.7.39
curl --progress-bar https://oss.hc-yun.com/lanmei/soft/mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar | tar x -C /home/mysql-5.7.39

# 安装 mysql
rpm -ivh /home/mysql-5.7.39/mysql-community-common-5.7.39-1.el7.x86_64.rpm
rpm -ivh /home/mysql-5.7.39/mysql-community-libs-5.7.39-1.el7.x86_64.rpm 
rpm -ivh /home/mysql-5.7.39/mysql-community-libs-compat-5.7.39-1.el7.x86_64.rpm
rpm -ivh /home/mysql-5.7.39/mysql-community-client-5.7.39-1.el7.x86_64.rpm
rpm -ivh /home/mysql-5.7.39/mysql-community-devel-5.7.39-1.el7.x86_64.rpm
rpm -ivh /home/mysql-5.7.39/mysql-community-server-5.7.39-1.el7.x86_64.rpm

# 初始化 mysql
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql --ssl

# 启动 mysql 服务 && 配置 mysql服务开机自启动
systemctl enable --now mysqld
systemctl restart mysqld

# 初始化 root 账号
mysql -e "grant all on *.* to 'root'@'%' identified by 'emFxMUBXU1h4' with grant option;"

# 创建 nacos 数据库
mysql -e 'create database if not exists nacos default charset = utf8mb4 collate = utf8mb4_general_ci;'

# 下载 && 导入 nacos sql
curl --progress-bar -O https://ghproxy.com/https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/mysql-schema.sql
mysql nacos < ./mysql-schema.sql

# 创建 nacos 用户 && 授权
mysql -e "CREATE USER 'nacos'@'%' IDENTIFIED BY 'emFxMUBXU1h4';"
mysql -e "GRANT ALL ON nacos.* TO 'nacos'@'%';"
mysql -e "SHOW GRANTS FOR 'nacos'@'%';"

2.Nacos 安装配置

# 下载解压 nacos 安装包
curl --progress-bar https://ghproxy.com/https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz | tar xz -C /home

# 配置 nacos 数据库
cat >> /home/nacos/conf/application.properties   <<EOF

### Count of DB:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.10.75:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=emFxMUBXU1h4

### Specify local server's IP:
# nacos.inetutils.ip-address=172.31.32.146
EOF

# 配置 nacos (将集群内各节点服务IP与端口写入配置文件)
cat > /home/nacos/conf/cluster.conf <<'EOF'
# ip:port
192.168.10.71:8848
192.168.10.72:8848
192.168.10.73:8848
EOF

# 创建 nacos 服务
source /etc/profile.d/jdk.sh
cat > /usr/lib/systemd/system/nacos.service <<EOF
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=$JAVA_HOME"
ExecStart=/home/nacos/bin/startup.sh
ExecStop=/home/nacos/bin/shutdown.sh
MemoryLimit=2048M
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 启动 nacos 服务 && 配置 nacos 服务开机自启动
systemctl daemon-reload
systemctl enable --now nacos.service

3.Nginx 安装配置

# 下载解压 nginx 安装包
curl -s http://oss.hc-yun.com/mango_soft/nginx-1.22.0.rpm.tgz | tar xz -C /tmp

# 安装 nginx
rpm -ivh /tmp/nginx-1.22.0/*.rpm

# 清理安装
rm -rf /tmp/nginx-1.22.0 /etc/nginx/conf.d/*

# 创建服务端口代理(http 8848)
cat > /etc/nginx/conf.d/proxy_nacos.conf <<'EOF'
upstream nacos_http {
    server 192.168.10.71:8848 fail_timeout=100s max_fails=10;
    server 192.168.10.72:8848 fail_timeout=100s max_fails=10;
    server 192.168.10.73:8848 fail_timeout=100s max_fails=10;
}

server {
    listen       80;
    server_name  localhost;

    error_log    /var/log/nginx/nacos.error.log;
    access_log   /var/log/nginx/nacos.access.log;

    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://nacos_http;
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
EOF

# nginx 配置 tcp 代理
cat >> /etc/nginx/nginx.conf <<'EOF'

stream {
    log_format tcpproxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    # tcp 代理
    include /etc/nginx/tcp.d/*.conf;
}
EOF

# 创建服务端口代理(tcp 9848)
mkdir -p /etc/nginx/tcp.d
cat > /etc/nginx/tcp.d/nacos.conf <<'EOF'
upstream nacos_grpc {
    server 192.168.10.71:9848;
    server 192.168.10.72:9848;
    server 192.168.10.73:9848;
}

server {
    listen 1080;
    proxy_pass nacos_grpc;
    proxy_connect_timeout 1h;
    proxy_timeout 1h;

    error_log    /var/log/nginx/nacos.grpc.error.log;
    access_log   /var/log/nginx/nacos.grpc.access.log tcpproxy;
}
EOF

# 启动 nginx 服务 && 配置 nginx 服务开机自启动
systemctl daemon-reload
systemctl enable --now nginx.service

监控 nacos

Nacos 监控手册

1. Nacos 暴露 metrics 数据

sed -i '/management.endpoints.web.exposure.include/s/^#//' /home/nacos/conf/application.properties

2. 修改 prometheus 配置, 采集 Nacos metrics 数据

# example 1
metrics_path: '/nacos/actuator/prometheus'
static_configs:
  - targets:
    - 192.168.10.71:8848
    - 192.168.10.72:8848
    - 192.168.10.73:8848

# example 2
metrics_path: '/nacos/actuator/prometheus'
static_configs:
  - targets: ['192.168.10.71:8848','192.168.10.72:8848','192.168.10.73:8848']

3. Nacos grafana监控模版

https://github.com/nacos-group/nacos-template/blob/master/nacos-grafana.json

空文件

简介

nacos 单机/集群,虚拟机/容器 部署 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/ease-meta/nacos-install.git
git@gitee.com:ease-meta/nacos-install.git
ease-meta
nacos-install
nacos 部署
master

搜索帮助