一、Nacos安装和启动

1、下载

下载地址:Tags · alibaba/nacos · GitHub

2、安装

linux操作:

2.1、把安装包先上传到 /usr/upload 目录下 进入该目录

2.2 、解压并移动到 /usr/local目录下

[root@localhost ~]# cd /usr/upload
[root@localhost upload]# tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local  //解压并移动

3、启动和关闭

启动: 进入cd /usr/local/nacos/bin

执行./startup.sh -m standalone #非集群模式启动

 ... ... nacos is starting with standalone          #出现这个表示启动成功!!!

         nacos is starting,you can check the /usr/java/nacos/logs/start.out       

nacos容器环境安装 nacos安装配置启动教程_java

关闭: 在 /usr/local/nacos/bin 下执行 ./shutdown.sh

[root@localhost bin]# ./shutdown.sh
The nacosServer(3543) is running...
Send shutdown request to nacosServer(3543) OK   #关闭成功
[root@localhost bin]

nacos容器环境安装 nacos安装配置启动教程_maven_02

4、测试

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

        默认用户名/密码为: nacos/nacos

        注意: 192.168.128.131这个是你启动的nacos的主机ip、

                8848是nacos默认的端口

成功页面

nacos容器环境安装 nacos安装配置启动教程_服务器_03

nacos容器环境安装 nacos安装配置启动教程_linux_04

*************************************************************************************

 二、nacos注册中心(存放服务)

 1、什么是Nacos注册中心?

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_05

概念

注册中心主要有三部分组成:

Nacos-Server:注册中心

提供服务的注册和发现。

Nacos-Provider:服务提供方

把自身的服务实例注册到 Nacos Server 中

Nacos-Consumer:服务调用方

通过 Nacos Server 获取服务列表,消费服务

项目结构:

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_06

父项目springCloud_parent  pom文件配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.peng</groupId>
    <artifactId>springCloud_parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud_commom</module>
        <module>nacos_provider</module>
        <module>nacos_consumer</module>
        <module>nacos_config</module>
    </modules>

    <properties>
        <!-- 项目源码及编译输出的编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- 项目编译JDK版本 -->
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--Spring Boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud Netflix-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR9</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud 阿里巴巴-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

操作:

第一步:添加依赖        Nacos-Provider:服务提供方 

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--nacos客户端-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>com.peng</groupId>
        <artifactId>springcloud_commom</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

第二步:配置yml文件

server:
  port: 9090
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.128.131:8848 #nacos服务的地址
  application:
    name: nacos-provider #向注册中心注册的名字

第三步:注册服务

@SpringBootApplication
@EnableDiscoveryClient//向注册中心注册该服务,并可以获取其他服务的调用地址
public class ProviderApp {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApp.class);
    }
}

第四步:创建Controller  service   serviceImpl

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/provider")
public class ProviderController {

    @Autowired
    private UserService userService;

    @RequestMapping("/getUserById/{id}")
    public User getUserById(@PathVariable Integer id){
        return userService.getUserById(id);
    }

}
package com.peng.service;

import com.peng.pojo.User;

public interface UserService {

    User getUserById(Integer id);
}
package com.peng.service.impl;

import com.peng.pojo.User;
import com.peng.service.UserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Override
    public User getUserById(Integer id) {
        return new User(id,"张三",12);
    }
}

实体类:  (可以在父工程下创一个子模块springCloud_commom专门放实体类工具类,不过需要引入子模块。)   

package com.peng.pojo;

public class User {

    private Integer id;
    private String name;
    private Integer age;

    public User() {
    }

    public User(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

服务消费方:

第一步:添加依赖        nacos_consumer:服务消费方 

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--cacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.peng</groupId>
            <artifactId>springcloud_commom</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

第二步:配置yml文件

server:
  port: 80
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.128.131:8848 #nacos服务的地址
  application:
    name: nacos-consumer #向注册中心注册的名字

第三步:注册服务

@SpringBootApplication
@EnableDiscoveryClient//向注册中心注册该服务,并可以获取其他服务的调用地址
public class ConsumerApp {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApp.class);
    }
}

 创建一个ConsumerController

@RestController
@RequestMapping(value = "/consumer")
public class ConsumerController {
	
	@Autowired
	private RestTemplate restTemplate;

	@Autowired
	private DiscoveryClient discoveryClient;

	@RequestMapping(value="/getUserById/{id}")
	public User getUserById(@PathVariable Integer id){
		//获取nacos中注册的所有服务信息
		List<String> serviceList = discoveryClient.getServices();
		for (String service : serviceList) {
			System.out.println(service);    //打印所有的注册到nacos中服务的名称
		}
		//获取nacos中注册的指定服务信息
        //通过名称获取到注册中心该服务的实例
		ServiceInstance instance = discoveryClient.getInstances("nacos-provider").get(0);
        //instance.getHost() 获取该服务的ip     instance.getPort()获取端口
		String serviceUrl = instance.getHost() + ":" + instance.getPort();

		String url = "http://"+serviceUrl+"/provider/getUserById/"+id;
		return restTemplate.getForObject(url, User.class);//调用该服务
	}
}

启动commom    provider测试:通过调用消费服务获取提供者返回的数据

nacos容器环境安装 nacos安装配置启动教程_maven_07

 注册成功的服务:

nacos容器环境安装 nacos安装配置启动教程_服务器_08

总结:

           1、添加依赖 

           2、配置yml 

           3、启动类添加@EnableDiscoveryClient注册服务,并可以调用其他服务

*************************************************************************************

三、Nacos配置中心

        什么是Nacos配置中心?

首先我们来看一下,微服务架构下关于配置文件的一些问题:

  • 配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,不好统一配置和管理。
  • 配置文件无法区分环境。微服务项目可能会有多个环境,例如:测试环境、预发布环境、生产环境。每一个环境所使用的配置理论上都是不同的,一旦需要修改,就需要我们去各个微服务下手动维护,这比较困难。
  • 配置文件无法实时更新。我们修改了配置文件之后,必须重新启动微服务才能使配置生效,这对一个正在运行的项目来说是非常不友好的。

基于上面这些问题,我们就需要配置中心的加入来解决这些问题,配置中心的思路是:

  1. 首先把项目中各种配置全部都放到一个集中的地方进行统一管理。
  2. 当各个服务需要获取配置的时候,就来配置中心的接口拉取自己的配置。
  3. 当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新

 

nacos容器环境安装 nacos安装配置启动教程_服务器_09

创建nacos_config子模块

第一步:添加依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

第二步:配置yml

        注意:

                配置文件的名称必须为bootstrap.yml

bootstrap/ application 的应用场景

                bootstrap.ymlapplicaton.yml 优先加载,应用于系统级别参数配置,一般不会变动

                application.yml应用于SpringBoot项目的自动化配置;

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.128.131:8848
        file-extension: yaml #后缀名,只支持 properties 和 yaml 类型
        prefix: nacos-config #文件名,如果没有配置则默认为 ${spring.appliction.name}

prefix + file-extension =  nacos-config.yaml这是  Nacos的DataID名称   

第三步、在启动类添加@EnableDiscoveryClient  注册服务

package com.peng;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient  //向nacos服务中心注册该服务,并可以获取其他服务的调用地址
public class NacosConfigApp {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApp.class,args);
    }
}

第四步:编写ConfigController

package com.peng.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope //重新从BeanFactroy获取一个新的实例(该实例使用新的配置)
public class ConfigController {

    @Value("${spring.datasource.driver-class-name}")
    private String driverClassName;
    @Value("${spring.datasource.url}")
    private String url;
    @Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;
    @Value("${spring.datasource.type}")
    private String type;

    @GetMapping("/config/info")
    public String getConfigInfo(){
        System.out.println(this);
        String configInfo = driverClassName+"<br>"+url+"<br>"+username+"<br>"+password
                +"<br>"+type;
        return configInfo;
    }

}

*****************************************************

往Nacos添加配置信息

在 Nacos 中,dataId(配置文件的命名的规则) 的完整格式如下

${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}

 说明

        spring.cloud.nacos.config.prefix:默认是当前服务的服务名称

        spring.cloud.nacos.config.file-extension:配置文件的格式(后缀),目前只支持yaml和properties

nacos容器环境安装 nacos安装配置启动教程_linux_10

nacos容器环境安装 nacos安装配置启动教程_java_11

配置内容:

server:
  port: 8083
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.128.131:8848
  application:
    name: nacos-config
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/health?characterEncoding=UTF-8
    username: root
    password: 1111
    type: com.alibaba.druid.pool.DruidDataSource

测试: 

浏览器访问:http://127.0.0.1:8083/config/info

1、启动nacos-config

nacos容器环境安装 nacos安装配置启动教程_maven_12

 

nacos容器环境安装 nacos安装配置启动教程_java_13

动态更新

 修改配置文件后nacos监听到MD5有变化则推送消息给客户端,客户端收到消息后会拉取最新配置


@RefreshScope //重新从BeanFactroy获取一个新的实例(该实例使用新的配置)


当修改了nacos上的配置文件,@RefreshScope会从新获取一个新的实例,从而实现不需要重启项目就能更新配置文件。

nacos容器环境安装 nacos安装配置启动教程_linux_14

 重新访问无需重启项目

nacos容器环境安装 nacos安装配置启动教程_maven_15

nacos容器环境安装 nacos安装配置启动教程_服务器_16

修改完后本地也会修改配置:

nacos容器环境安装 nacos安装配置启动教程_java_17

*************************************************************

四、配置隔离

Nacos配置管理模型

对于Nacos配置管理,通过Namespace、group、Data ID能够定位到一个配置集

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_18

Namespace Group DataId介绍:

        Namespace: 代表不同的环境的配置隔离, 如: 开发、测试, 生产等

        Group: 可以代表某个项目, 如XX医疗项目, XX电商项目

        DataId: 每个项目下往往有若干个工程, 每个配置集(DataId)是一个工程的主配置文件

nacos容器环境安装 nacos安装配置启动教程_linux_19

获取配置集需要指定

        1、nacos服务地址,必须指定

        2、namespace,如不指定默认public

        3、group,如不指定默认 DEFAULT_GROUP

        4、dataId,必须指定

namespace隔离

前面已经介绍过,命名空间(Namespace)是用于隔离多个环境的(如开发、测试、生产),而每个应用在不同环境的同一个配置(如数据库数据源)的值是不一样的。因此,我们应针对企业项目实际研发流程、环境进行规划。如某软件公司拥有开发、测试、生产三套环境,那么我们应该针对这三个环境分别建立三个namespace

nacos容器环境安装 nacos安装配置启动教程_服务器_20

新建namespace

nacos容器环境安装 nacos安装配置启动教程_linux_21

nacos容器环境安装 nacos安装配置启动教程_java_22

建立好所有namespace后,在配置管理与服务管理模块下所有页面,都会包含用于切换namespace的选项卡

nacos容器环境安装 nacos安装配置启动教程_linux_23

nacos容器环境安装 nacos安装配置启动教程_linux_24

克隆完成后test空间就有了克隆过来的配置信息了 

nacos容器环境安装 nacos安装配置启动教程_linux_25

同理创建dev开发环境命名空间同样克隆一份

nacos容器环境安装 nacos安装配置启动教程_服务器_26

此时有两个命名空间一个test  命名空间ID自动生成的,一个dev 命名空间ID我们自定义的

nacos容器环境安装 nacos安装配置启动教程_linux_27

 修改配置nacos-config的yml文件添加


namespace: dev #命名空间ID 表示这是一个开发环境


 

nacos容器环境安装 nacos安装配置启动教程_java_28

 重启nacos_config(子模块)

修改dev下的配置

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_29

nacos容器环境安装 nacos安装配置启动教程_服务器_30

在访问:http://localhost:8083/config/info 此时配置指定环境下的配置文件就成功了

nacos容器环境安装 nacos安装配置启动教程_java_31

 如果一个dev(开发环境)下有两个Group怎么指定呢?

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_32

此时有两个group相当于:一个文件夹下有俩配置文件   一个密码是:3333     一个密码是5555

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_33

 此时怎么指定配置文件呢?

修改nacos-config的yml配置文件添加:


group: NACOS_GROUP #Group 名称(项目名)


nacos容器环境安装 nacos安装配置启动教程_java_34

重新访问:http://localhost:8083/config/info

nacos容器环境安装 nacos安装配置启动教程_java_35

*******************************************************

五、Nacos集群和持久化

Nacos默认有自带嵌入式数据库derby,但是如果做集群模式的话,就不能使用自己的数据库不然每个节点一个数据库,那么数据就不统一了,需要使用外部的mysql

nacos容器环境安装 nacos安装配置启动教程_服务器_36

切换数据库

修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql,版本要求:5.6.5+)

1、先关闭nacos                                        ./shutdown.sh

2、进入nacos/conf                                    cd /usr/local/nacos/conf

3、编辑  application.properties                 vim application.properties

nacos容器环境安装 nacos安装配置启动教程_服务器_37

打开文件后,

1、i命令进入编辑模式 修改文件   放开配置(就是删掉#号)    

2、配置要连接的数据库  配置账户名与密码 

3、修改完成后  键盘左上角EXC 退出编辑模式   

4、:wq保存退出即可

nacos容器环境安装 nacos安装配置启动教程_服务器_38

初始化数据库

创建nacos数据库并导入sql

usr/local/nacos/conf目录下有一个sql文件把他导入到数据库即可

nacos容器环境安装 nacos安装配置启动教程_maven_39

nacos容器环境安装 nacos安装配置启动教程_java_40

测试

重启nacos测试nacos所有写到嵌入式数据库的数据是否都写到了mysql  

注意mysql服务:需要开启

1、cd /usr/local/nacos/bin   进入nacos/bin目录下

2、./startup.sh -m standalone    启动nacos

 

nacos容器环境安装 nacos安装配置启动教程_java_41

此时配置文件信息已经持久化到Mysql数据库了

nacos容器环境安装 nacos安装配置启动教程_maven_42

*******************************************************************

六、集群

部署架构图:

nacos容器环境安装 nacos安装配置启动教程_服务器_43

节点规划

节点

端口

192.168.116.131

8848

192.168.116.131

8849

192.168.116.131

8850

集群搭建

找到conf/cluster.conf.example ,将其改名为 conf/cluster.conf ,并将内容改为如下

# ip:port
192.168.128.131:8848
192.168.128.131:8849
192.168.128.131:8850

nacos容器环境安装 nacos安装配置启动教程_linux_44

nacos容器环境安装 nacos安装配置启动教程_服务器_45

 复制三份Nacos   

1、cd /usr/local                   进入该目录下        

2、mkdir nacos_cluster         创建nacos_cluster     文件夹

3、 cp -r nacos nacos_cluster/nacos_8848     /8849/8850  复制到nacos_cluster文件下并起名

conf/application.properties 中的端口号分别改为

[root@localhost bin]# cd /usr/local
[root@localhost java]# mkdir nacos_cluster
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8848
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8849
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8850

 server.port=8848
 server.port=8849
 server.port=8850

nacos容器环境安装 nacos安装配置启动教程_linux_46

这里拿8849举例,其他俩一样,一个改8848  一个8850

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_47

启动这三个nacos服务

[root@localhost upload]# cd /usr/local/nacos_cluster/nacos_8848/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8849/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8850/bin
[root@localhost bin]# ./startup.sh

测试  三台nacos服务是否可以访问

http://192.168.128.131:8848/nacos

http://192.168.128.131:8849/nacos

http://192.168.128.131:8850/nacos

nacos容器环境安装 nacos安装配置启动教程_linux_48

 

nacos容器环境安装 nacos安装配置启动教程_maven_49

nacos容器环境安装 nacos安装配置启动教程_java_50

这时候都能访问通了,注意我这里用的linux 一台虚拟机模拟的三台服务,虚拟机分配了3个G的内存,因为前面把数据持久到mysql中了,需要先开启mysql,在开启这三个服务,访问时有可能会有点慢,多刷新刷新就好了。

箭头指向表示的是这三个服务的老大,用nginx访问nacos时不管请求到那一台,都会给老大报告,

 老大自己更新下,在跟另一台说声让他也更新数据,这样就完成了三台nacos的数据统一。如果老大挂掉,活着的会继续推选个老大出来。。。。

我们还可以启动一个nacos-provider(子模块)注册一个服务看三个nacos页面会不会同步。。

nacos容器环境安装 nacos安装配置启动教程_maven_51

nacos容器环境安装 nacos安装配置启动教程_maven_52

启动成功,这时我们去刷新三个nacos的页面

 

nacos容器环境安装 nacos安装配置启动教程_linux_53

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_54

 

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_55

 我们发现我们在nacos-provider(子模块)yml配置了一个8848  另外两个nacos同步了该服务

  此时可以进行下一步配置了。

配置代理服务

在克隆一台虚拟机安装nginx

安装nginx

第一步、安装nginx的依赖库          (这是安装C语言环境)

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

nacos容器环境安装 nacos安装配置启动教程_服务器_56

nacos容器环境安装 nacos安装配置启动教程_maven_57

 第二步、下载nginx

wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

nacos容器环境安装 nacos安装配置启动教程_java_58

 第三步、解压安装包

tar -zxvf nginx-1.12.0.tar.gz

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_59

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_60

 第四步、 配置nginx安装包

cd nginx-1.12.0

./configure --prefix=/usr/local/nginx

nacos容器环境安装 nacos安装配置启动教程_java_61

 注意:./configure配置nginx安装到/usr/java/nginx目录下

第五步、编译并安装

make && make install

nacos容器环境安装 nacos安装配置启动教程_服务器_62

配置nginx代理nacos

cd /usr/local/nginx/conf/

修改nginx.conf文件

upstream nacos {
  server 192.168.128.131:8848;
  server 192.168.128.131:8849;
  server 192.168.128.131:8850;
}

server {
  listen 80;
  server_name  192.168.128.132;
  location / {
    proxy_pass http://nacos;
  }
}

nacos容器环境安装 nacos安装配置启动教程_java_63

测试

1.重新启动三台nacos服务(集群模式启动)

[root@localhost upload]# cd /usr/local/nacos_cluster/nacos_8848/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8849/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8850/bin
[root@localhost bin]# ./startup.sh

 

nacos容器环境安装 nacos安装配置启动教程_maven_64

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_65

2、 启动nginx

[root@localhost nginx]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx

nacos容器环境安装 nacos安装配置启动教程_java_66

启动成功后就可以通过nginx访问了(随机访问某一台nacos服务)

http://192.168.128.132/nacos

nacos容器环境安装 nacos安装配置启动教程_java_67

 补充知识点,nacos开机自启动,练习时设置开机自启动,不用每次开机都手动开启服务了,实际开发中这个没啥用,因为一般不会关闭服务器,练习用用还行。。。

1、编写开机启动文件        (这里演示的是单个nacos)

 添加nacos.service文件

vim /lib/systemd/system/nacos.service (创建并打开文件)

然后依次执行  i编辑模式 把下方代码复制进去 EXC退出编辑模式   :wq保存退出

[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2、修改nacos的startup.sh               

vim /usr/local/nacos/bin/startup.sh

修改JAVA_HOME路径并注销之后的3行配置,如下保存并退出

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191 
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME

3、设置开机启动

systemctl daemon-reload        #重新加载服务配置
systemctl enable nacos.service #设置为开机启动
systemctl start nacos.service  #启动nacos服务
systemctl stop nacos.service   #停止nacos服务

nacos容器环境安装 nacos安装配置启动教程_maven_68

nacos容器环境安装 nacos安装配置启动教程_nacos容器环境安装_69

最后依次启动nacos              systemctl start nacos.service

重新加载该服务                    systemctl daemon-reload

设置开机启动                        systemctl enable nacos.service

然后就可以重启你安装的nacos机器了

nacos容器环境安装 nacos安装配置启动教程_linux_70

 启动成功:可以成功访问。。。

nacos容器环境安装 nacos安装配置启动教程_linux_71