CentOS搭建:Nacos

12/31/2023 Linux

目录


参考:


# CentOS搭建:Nacos

# 环境依赖

软件/环境 版本 包名 方式 备注
Linux CentOS 7.x
Nacos 1.2.1 nacos-server-1.2.1.tar.gz (opens new window) 官网下载 (opens new window)
2.4.3 nacos-server-2.4.3.tar.gz (opens new window)

# Nacos单机搭建

# 解压缩
sudo tar -zxvf nacos-server-1.2.1.tar.gz
sudo mv nacos nacos-server-1.2.1
1
2
3

初始化数据库

# 登录mysql
mysql -u root -p
1
2
# 创建nacos_config数据库
CREATE DATABASE IF NOT EXISTS `nacos_config` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
# 查看数据库
show databases;
# 使用nacos_config数据库 
use nacos_config;
# 执行nacos的mysql脚本
source /soft/nacos/nacos-server-1.2.1/conf/nacos-mysql.sql;
# 退出
exit;
1
2
3
4
5
6
7
8
9
10

修改数据库配置

ll -a /soft/nacos/nacos-server-1.2.1/conf |grep properties
# 备份
sudo cp /soft/nacos/nacos-server-1.2.1/conf/application.properties /soft/nacos/nacos-server-1.2.1/conf/application.properties.bak20240801
1
2
3
# 编辑
sudo vi /soft/nacos/nacos-server-1.2.1/conf/application.properties
1
2
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://IP:端口/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=密码(root)
1
2
3
4
5
6
7
8
9
10
11

新增用户并赋权

# 新增用户组及用户
sudo groupadd nacos
sudo useradd -g nacos nacos -s /sbin/nologin
# 查看是否创建成功
id nacos
getent passwd nacos
getent passwd nacos | cut -d: -f7
1
2
3
4
5
6
7
  • -s /sbin/nologin:设置用户为非标准方式登录到系统,用户只用于运行服务,而不需要直接的交互。
# 更改目录的属主
sudo chown -R nacos:nacos /soft/nacos
# 查看母的属主
ll -a /soft |grep nacos
1
2
3
4
# 为目录及其内部文件添加执行权限。为确保Nacos服务的可执行文件或脚本能够被正确执行。 
sudo chmod +x /soft/nacos/nacos-server-1.2.1/bin
1
2

配置服务管理

ll -a /etc/systemd/system |grep nacos
# 编辑
sudo vi /etc/systemd/system/nacos.service
1
2
3
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
# 使用的用户和组
User=nacos
Group=nacos
# 依赖jdk环境
Environment="JAVA_HOME=/soft/jdk/jdk1.8.0_411"
# 启动停止路径(standalone是单机,默认是集群cluster)
ExecStart=/soft/nacos/nacos-server-1.2.1/bin/startup.sh -m standalone
ExecStop=/soft/nacos/nacos-server-1.2.1/bin/shutdown.sh
ExecReload=/soft/nacos/nacos-server-1.2.1/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 重新加载配置
sudo systemctl daemon-reload
# 服务状态
sudo systemctl status nacos.service
# 启动服务
sudo systemctl start nacos.service
# 开机自启动
sudo systemctl enable nacos.service
1
2
3
4
5
6
7
8

防火墙放开端口

# 8848 注册中心端口
firewall-cmd --add-port=8848/tcp --permanent
# 9848 客户端gRPC请求服务端口,用户客户端向服务端发起连接和请求
firewall-cmd --add-port=9848/tcp --permanent
# 重新加载防火墙 
firewall-cmd --reload;
#查看防火墙开发的端口
firewall-cmd --list-ports
1
2
3
4
5
6
7
8

默认访问地址:

http://ip:8848/nacos

账号:nacos/nacos

# Nacos集群搭建

# 解压缩安装包

sudo mkdir /opt/nacos
sudo mv nacos-server-1.2.1.tar.gz /opt/nacos/ 
cd /opt/nacos/
sudo tar -zxvf nacos-server-1.2.1.tar.gz
1
2
3
4

# 修改集群配置

cd nacos/conf/
sudo cp cluster.conf.example cluster.conf
sudo vim cluster.conf
1
2
3
  • 集群机器IP,示例如下:
10.237.198.132
10.237.198.58
10.237.198.57
1
2
3

# 修改数据库配置

  • 初始化数据库
CREATE DATABASE IF NOT EXISTS `nacos_config` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
source /opt/nacos/nacos/conf/nacos-mysql.sql;
1
2
  • 修改数据库配置
sudo cp application.properties application.properties.bak20240801
sudo vim application.properties
1
2
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://10.237.198.58:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=mLEh:*#gu6ok
1
2
3
4
5
6
7
8
9
10
11

# 启动 Nacos

cd /opt/nacos/nacos/bin/
sudo ./shutdown.sh
sudo ./startup.sh
tail -500f /opt/nacos/nacos/logs/start.out
1
2
3
4

# Nginx代理Nacos

nginx反向代理 nacos2.4.3的gRPC端口

要使用Nginx反向代理Nacos 2.4.3的gRPC端口,需要确保Nginx支持HTTP/2协议,因为gRPC是基于HTTP/2的。以下是一个基本的配置步骤和示例:

# 一、前提条件

  1. Nginx安装:确保Nginx已经安装,并且版本支持HTTP/2(Nginx 1.13.10及以上版本)。
  2. Nacos集群:假设Nacos 2.4.3集群已经搭建并运行,且gRPC端口已经配置好(默认为某个特定端口,这里假设为9848,但具体端口号需根据实际情况确定)。
  3. SSL证书(如果使用HTTPS):如果需要通过HTTPS访问,需要准备SSL证书和密钥文件。

# 二、Nginx配置

  1. 修改Nginx配置文件:通常位于/etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf,或者可以在该目录下创建一个新的配置文件并在主配置文件中包含它。
  2. 添加gRPC反向代理配置
http {
    # ... 其他配置 ...

    upstream nacos_grpc_cluster {
        server 10.206.0.13:9848; # 替换为实际的Nacos节点IP和端口
        server 10.206.0.8:9848;  # 如果有多个节点,继续添加
        # ... 其他Nacos节点 ...
    }

    server {
        listen 80 http2; # 监听HTTP/2协议,端口80(可以根据需要更改)
        server_name nacos_grpc.example.com; # 替换为实际的域名或IP地址

        # 如果需要重定向到HTTPS,可以添加以下配置(这里以HTTP/2为例,所以不需要重定向)
        # return 301 https://$server_name$request_uri;

        location / {
            grpc_pass grpc://nacos_grpc_cluster; # 反向代理到Nacos gRPC集群

            # 设置请求头(如果需要)
            # grpc_set_header Some-Header-Name $some_variable;

            # 其他gRPC相关配置(根据需要添加)
            # grpc_read_timeout 30s;
            # grpc_send_timeout 30s;
        }

        # ... 其他配置(如错误页面、日志等) ...
    }

    # 如果使用HTTPS,可以添加以下server块
    # server {
    #     listen 443 ssl http2; # 监听HTTPS和HTTP/2协议,端口443
    #     server_name nacos_grpc.example.com; # 替换为实际的域名或IP地址

    #     ssl_certificate /path/to/ssl_certificate.pem; # SSL证书路径
    #     ssl_certificate_key /path/to/ssl_certificate_key.pem; # SSL证书密钥路径

    #     # SSL其他配置(如会话缓存、密码套件等)
    #     # ...

    #     location / {
    #         grpc_pass grpcs://nacos_grpc_cluster; # 反向代理到Nacos gRPC集群(使用SSL)
    #         # ... 其他gRPC配置 ...
    #     }

    #     # ... 其他配置(如错误页面、日志等) ...
    # }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

# 三、注意事项

  1. 端口号:确保Nginx监听的端口号与Nacos gRPC端口号不冲突,并且防火墙允许相应的端口通信。
  2. SSL证书:如果使用HTTPS,需要确保SSL证书和密钥文件路径正确,并且证书有效。
  3. Nginx版本:确保Nginx版本支持HTTP/2和gRPC代理。
  4. 重启Nginx:修改配置后,需要重启Nginx服务以使更改生效。
  5. 日志调试:如果配置出现问题,可以查看Nginx的错误日志和访问日志进行调试。

通过以上步骤,你应该能够成功配置Nginx反向代理Nacos 2.4.3的gRPC端口。请注意,这只是一个基本的配置示例,具体配置可能需要根据实际情况进行调整。

上次更新时间: 11/13/2024, 8:26:38 AM