Nacos2.3.1集群+数据持久化+鉴权+负载LB

环境:

cenos7.9 

主机4台:

192.26.100.4  nacos节点1

192.26.100.5 nacos节点2

192.26.100.6 nacos节点3

192.26.100.7 负载nginx

mysql:

MySQL需要5.7以上

MySQL部署点击跳转

相关安装包及下载地址:

nacos下载地址点击跳转

jdk下载地址点击跳转

jdk-8u421-linux-x64.tar.gz     
nacos-server-2.3.1.tar.gz  

前置操作(三台同理)

systemctl stop firewalld
systemctl disable firewalld

setenforce 0

 jdk安装:


(三个nacos节点同时操作)


   19  tar -xvf jdk-8u421-linux-x64.tar.gz  -C /usr/local/
   20  tar -xvf nacos-server-2.3.1.tar.gz  -C /usr/local/

   21  cd /usr/local/
   24  mv jdk1.8.0_421/  jdk

   25  ls
 vi /etc/profile  #在最下方添加

 export PATH=/usr/local/jdk/bin:$PATH
 export CLASSPATH=/usr/local/jdk/lib:$CLASSPATH
  source /etc/profile

java -version  #如果找不到改命令要自己看你解压路径与变量文件是否写一致
java version "1.8.0_421"
Java(TM) SE Runtime Environment (build 1.8.0_421-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.421-b09, mixed mode)

nacos配置(数据持久化)

我们在jdk安装步骤中已经顺便解压nacos包到/usr/local所以我们现在配置数据库

 /usr/local/nacos/conf/mysql-schema.sql   #通常在这个目录下方
  #我们选取一台nacos拿sql文件传输到数据库机子

我已经传过来了

mysql -u root -p  #登录

mysql> create database nacos;
mysql> create user 'nacos'@'%' identified with mysql_native_password by 'passwd';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'nacos'@'%';
mysql> source /root/mysql-schema.sql;
回显示全部ok即可
这一步是三个节点同时操作

#生成base64密码 

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 | tr -d '\n'

wsg5JEYX9JSezlxSeVhF9LnV66lZApI5EZ7L8HrDzHE=

   

30  vi /usr/local/nacos/conf/application.properties

#*************** Spring Boot Related Configurations ***************#
server.servlet.contextPath=/nacos
server.error.include-message=ALWAYS
server.port=8848

#*************** Config Module Related Configurations ***************#
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://******:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=**
db.password.0=**

db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

nacos.config.push.maxRetryTime=50

#*************** Access Log Related Configurations ***************#
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.rotate=true
server.tomcat.accesslog.file-date-format=.yyyy-MM-dd-HH
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.basedir=file:.

#*************** Access Control Related Configurations ***************#
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true
nacos.core.auth.caching.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.cache.enable=false
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
nacos.core.auth.plugin.nacos.token.secret.key=OTVjNzBmNDMzZmIxNDgzOGY2OTVjNWJmYzA0ZDkwNTVjMzBiZTYwMjJmYTI5Y2Q3NTJlYTljOWM0NmFiZWQ0ZA==

#*************** Metrics for tomcat **************************#
server.tomcat.mbeanregistry.enabled=true

#*************** Istio Related Configurations ***************#
nacos.istio.mcp.server.enabled=false

#*************** JRaft Related Configurations ***************#
nacos.core.protocol.raft.data.election_timeout_ms=5000
nacos.core.protocol.raft.data.snapshot_interval_secs=30
nacos.core.protocol.raft.data.core_thread_num=8
nacos.core.protocol.raft.data.cli_service_thread_num=4
nacos.core.protocol.raft.data.read_index_type=ReadOnlySafe
nacos.core.protocol.raft.data.rpc_request_timeout_ms=5000

配置集群(三个节点一模一样操作)

mv /usr/local/nacos/conf/cluster.conf.example /usr/local/nacos/conf/cluster.conf

vim /usr/local/nacos/conf/cluster.conf

把下面ip改成自己集群对应ip

192.26.100.4:8848

192.26.100.5:8848

192.26.100.6:8848

尝试启动

sh startup.sh -m cluster

查看日志

 tail -f /usr/local/nacos/logs/start.out

2024-07-19 17:12:07,973 INFO Nacos is starting...

2024-07-19 17:12:08,984 INFO Nacos is starting...

2024-07-19 17:12:09,986 INFO Nacos is starting...

2024-07-19 17:12:10,987 INFO Nacos is starting...

2024-07-19 17:12:11,362 INFO Nacos started successfully in cluster mode. use external storage

 

我们三台配置好直接访问

ncaos相关操作

启动

sh startup.sh -m cluster

查看日志

 tail -f /usr/local/nacos/logs/start.out

关闭

sh /usr/local/nacos/bin/shutdown.sh

负载LB

    5  yum -y install nginx

    6  vi /etc/nginx/nginx.conf

把下方注释掉
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

创建nginx的nacos配置文件

vi /etc/nginx/conf.d/nacos.conf

upstream nacos_cluster {
    server 192.26.100.4:8848
    server 192.26.100.5:8848
    server 192.26.100.6:8848
}
#我是配置了ssl,如果没有ssl证书注释掉
server {
    listen       443 ssl;
    listen       80;
    server_name  域名(如果没有写ip或者删除这行) ;
        ssl_certificate "ssl路径";
        ssl_certificate_key "ssl路径";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

    location / {
        rewrite ^(.*)$ /nacos$1 break;
        proxy_pass         http://nacos_cluster;
        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_set_header   X-Forwarded-Proto $scheme;
        proxy_redirect     off;
    }
}

41  systemctl restart nginx

访问:

https://ip/#/login

https://域名/#/login

报错合集


org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'namespaceControllerV2' defined in URL [jar:file:/usr/local/nacos/target/nacos-server.jar!/BOOT-INF/classes!/com/alibaba/nacos/console/controller/v2/NamespaceControllerV2.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'namespaceOperationService' defined in URL [jar:file:/usr/local/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-core-2.3.1.jar!/com/alibaba/nacos/core/service/NamespaceOperationService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'externalOtherPersistServiceImpl' defined in URL [jar:file:/usr/local/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-core-2.3.1.jar!/com/alibaba/nacos/core/namespace/repository/ExternalNamespacePersistServiceImpl.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.namespace.repository.ExternalNamespacePersistServiceImpl]: Constructor threw except

对应的nacos主机sql配置文件指定数据库IP地址写错了 ,修正即可


2024-07-19 11:34:39,032 INFO Nacos Log files: /usr/local/nacos/data

2024-07-19 11:34:39,035 ERROR Startup errors :

org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:165) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:585) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409) at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) at com.alibaba.nacos.Nacos.main(Nacos.java:48)

 这个是必须要配置集群 因为nacos默认集群模式 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值