Linux中部署Spring Cloud项目

Linux中部署Spring Cloud项目

文章为本人在学习的过程中,记录部署过程,仅供参考学习。因本人经验不足,教程或有不妥之处,还望指正。

保姆级教程,敬请食用!!!

简介

在学习过程中,部署时使用的项目是一个个人学习项目。若您喜欢,也可点击 Gitee 源码查看。

Center Platform v1.0.0
基于 Vue/Element UI 和 Spring Boot/Spring Cloud & Alibaba 前后端分离的分布式微服务架构

项目简介:

  • 采用前后端分离的模式,微服务版本前端。
  • 后端采用Spring Boot、Spring Cloud & Alibaba。
  • 注册中心、配置中心选型Nacos,权限认证使用Redis。

项目需要的环境及工具清单:

  • VMware Workstation Pro 16
  • CentOS 7
  • MobaXterm
  • Redis
  • JDK 1.8
  • MySQL
  • Nacos
  • Node.js
  • nginx

指令传送门

firewall防火墙

CentOS 7及以上linux默认使用该防火墙

1、查看firewall服务状态

systemctl status firewalld

出现**Active: active (running)**切高亮显示则表示是启动状态。

出现**Active: inactive (dead)**灰色表示停止,看单词也行。
2、查看firewall的状态

firewall-cmd --state

3、开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

4、查看防火墙规则

firewall-cmd --list-all

5、查询、开放、关闭端口

# 查询端口是否开放
firewall-cmd --query-port=6379/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

参数解释

1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

systemctl

  1. 查看多个服务状态

    systemctl status nacos mysql redis
    

    image-20220805120256410

  2. 重新加载所有service服务

    systemctl daemon-reload
    
  3. 开机启动nacos.service

    systemctl enable redis.service
    
  4. 查看该service是否开机启用

    systemctl is-enabled redis.service
    
  5. 启动该服务

    systemctl start redis.service
    
  6. 查看状态

    systemctl status redis.service
    

vim

  1. 全选,全部复制,全部删除快捷键

    全选(高亮显示):按esc后,然后ggvG或者ggVG
    
    全部复制:按esc后,然后ggyG
    
    全部删除:按esc后,然后dG
    
    解析:
    
    gg:是让光标移到首行,在vim才有效,vi中无效 
    
    v : 是进入Visual(可视)模式 
    
    G :光标移到最后一行 
    
    选中内容以后就可以其他的操作了,比如: 
    d  删除选中内容 
    y  复制选中内容到0号寄存器 
    "+y  复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
    

扩展空间

在安装环境的过程中,遇见过几次存储不够用的情况,收集资料,总结扩展存储的方法。

  1. 关机状态下,设置硬盘大小

    image-20220805151519095

  2. 这样之后,实际并不会扩展好,还需要一些配置

  3. 置后进系统查看空间大小变化,实际并没有什么变化

    df -h
    lsblk
    

    image-20220805160844840

  4. 执行命令对新加的磁盘进行分区操作:

    fdisk /dev/sda
    

    image-20220805161324899

  5. sda3 的Id 是83 我们要将它改成8e跟sda2是一样的 将system 类型改成Linux LVM

    fdisk -l
    

    image-20220805161541769

    fdisk /dev/sda
    

    image-20220805161838286

    再查看一下:

    fdisk -l
    

    image-20220805161931107

  6. 重启虚拟机格式化新建分区

    reboot
    
  7. 然后将新添加的分区添加到已有的组实现扩容
    查看卷组名:

    vgdisplay
    

    image-20220805162652499

  8. 初始化刚刚的分区

    pvcreate /dev/sda3
    

    image-20220805162810212

  9. 将初始化过的分区加入到虚拟卷组名

    # vgextend 虚拟卷组名 新增的分区
    vgextend centos /dev/sda3
    

    image-20220805163729165

    在这里可能因为根目录没有空间了导致加入失败。

  10. 再次查看卷组情况

    vgdisplay
    

    image-20220805163858059

    可以看到,有大约27.8G的空间是空闲的。查看当前磁盘情况并记下需要扩展的文件系统名,这里要扩展根目录/dev/mapper/centos-root

    df -h
    

    image-20220805164114143

  11. 扩容已有的卷组容量(这里有个细节,就是不能全扩展满,比如空闲空间是27.8G,然后这里的话27.8G不能全扩展上,这里我扩展的是26G)

    # lvextend -L +需要扩展的容量 需要扩展的文件系统名 
    lvextend -L +26G /dev/mapper/centos-root
    

    image-20220805164338482

    可以看到,卷组已经扩容了

  12. 需要将文件系统扩容

    查看文件系统的格式:

    cat /etc/fstab | grep centos-root
    

    image-20220805164548405

  13. 文件系统是xfs,所以需要xfs的命令来扩展磁盘空间

    # xfs_growfs 文件系统名
    xfs_growfs /dev/mapper/centos-root
    

    image-20220805164650074

  14. 查看,扩容成功

    df -h
    

    image-20220805164815344

环境搭建

VMware Workstation Pro 16

下载

下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

下载版本:VMware Workstation Pro 16

image-20220803111514110

安装步骤
  1. 找到下载好的VMware-workstation-full-16.2.4-20089737.exe文件,鼠标右击以管理员身份运行
  2. 进入安装界面,点击下一步
  3. 先勾选我接受许可协议中的条款,然后点击下一步
  4. 选择软件安装路径,默认安装在C盘,点击更改可修改安装路径,注意:安装路径文件夹名称均不要含有中文字符,然后点击下一步
  5. 用户体验设置取消勾选,点击下一步
  6. 无脑下一步
  7. 安装中,时间可能有点长,耐心等待
  8. 可以选择输入密钥,或者跳过进行试用30天,密钥可以在网上搜索
  9. 安装完成

image-20220803113816207

CentOS 7

下载

下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/

下载版本:CentOS-7-x86_64-DVD-2009.iso

使用阿里云的镜像库:

image-20220803123845580

补充:

网易镜像库:https://mirrors.163.com/centos/7.9.2009/isos/x86_64/

搜狐镜像库:http://mirrors.sohu.com/centos/7.9.2009/isos/x86_64/

清华大学镜像库:https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/

重庆大学镜像库:https://mirrors.cqu.edu.cn/centos/7.9.2009/isos/x86_64/

安装步骤
  1. 创建新的虚拟机

  2. 自定义,下一步。

    典型安装:VMware会将主流的配置应用在虚拟机的操作系统上,对于新手来很友好。

    自定义安装:自定义安装可以针对性的把一些资源加强,把不需要的资源移除。避免资源的浪费。

    这里我选择自定义安装。

    image-20220803125333972

  3. 下一步

    image-20220803125350344

  4. 稍后安装操作系统,下一步

    image-20220803125412619

  5. 选择操作系统、版本。这里选择之后安装的操作系统,正确的选择会让vm tools更好的兼容。这里选择linux下的CentOS

    image-20220803125430953

  6. 选择地址,不建议C盘,路径不建议中文、空格、特殊字符。虚拟机名称就是一个名字,在虚拟机多的时候方便自己找到,按自己喜好命名。

    image-20220803131842013

  7. 处理器按需选择。处理器分配要根据自己的实际需求来分配。在使用过程中CPU不够的话是可以再增加的。

    image-20220803125511307

  8. 内存按需选择。内存也是要根据实际的需求分配。我的宿主机内存是16G所以我给虚拟机分配2G内存。

    image-20220803125530857

  9. 使用NAT网络连接。

    image-20220803125759524

    网络连接类型一共有桥接、NAT、仅主机和不联网四种:

    桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。

    NAT:NAT模式就是虚拟机要联网得先通过宿主机才能和外面进行通信。

    仅主机:虚拟机与宿主机直接连起来

    桥接与NAT模式访问互联网过程,如下图所示:

    image-20220803131043882

  10. 默认,下一步

    image-20220803125819554

  11. 默认,下一步

    image-20220803125839843

  12. 默认,下一步

    image-20220803125950041

  13. 选择内存。磁盘容量暂时分配20G即可后期可以随时增加,不要勾选立即分配所有磁盘,否则虚拟机会将20G直接分配给CentOS,会导致宿主机所剩硬盘容量减少。勾选将虚拟磁盘拆分成多个文件,这样可以使虚拟机方便用储存设备拷贝复制。

    image-20220803130028695

  14. 默认,下一步

    image-20220803130137143

  15. 选择自定义硬件,主要设置CentOS的镜像

    image-20220803130320459

  16. 选择声卡、打印机等不需要的硬件然后移除,按需选择即可。

    image-20220803131447393

  17. 先选择CD/DVD,再选择使用ISO映像文件,最后选择浏览找到下载好的镜像文件。启动时连接一定要勾选上后确定。然后关闭。

    image-20220803131641367

  18. 点击完成

    image-20220803131738983

  19. 开启虚拟机

    image-20220803132204761

  20. 安装操作系统

    开启虚拟机后会出现以下界面:

    • Install CentOS 7 安装CentOS 7
    • Test this media & install CentOS 7 测试安装文件并安装CentOS 7
    • Troubleshooting 修复故障

    选择第一项,安装直接CentOS 7,回车,进入下面的界面

    image-20220803132402191

  21. 选择安装过程中使用的语言,这里选择英文、键盘选择美式键盘。点击Continue

    image-20220803140714600

  22. 首先设置时间

    image-20220803140734247

    时区选择上海,查看时间是否正确。然后点击Done

    image-20220803140800965

  23. 选择需要安装的软件

    image-20220803140818577

    选择 Server with Gui,然后点击Done

    image-20220803140842052

  24. 选择安装位置,在这里可以进行磁盘划分。

    image-20220803140923369

    选择i wil configure partitioning(我将会配置分区),然后点击done

    image-20220803141022712

    如下图所示,点击加号,选择/boot,给boot分区分200M。最后点击Add

    image-20220803141128938

    然后以同样的办法给其他三个区分配好空间后点击Done

    image-20220803141147077

    然后会弹出摘要信息,点击AcceptChanges(接受更改)

    image-20220803141209876

  25. 设置主机名与网卡信息

    image-20220803141235438

    首先要打开网卡,然后查看是否能获取到IP地址,再根据需要更改主机名后点击Done。

    image-20220803141342677

  26. 最后选择Begin Installation(开始安装)

    image-20220803141412922

  27. 设置root密码

    image-20220803141431459

    设置root密码后点击Done

    image-20220803141454778

  28. 点击USER CREATION 创建管理员用户

    image-20220803141518635

    输入用户名密码后点击Done

    image-20220803141536720

  29. 等待系统安装完毕重启系统即可

    image-20220803141556296

配置静态IP

在上面,我们成功的将CentOS镜像安装到了我们的虚拟机上,可是这个时候,虚拟机还没有配置IP信息,为了后面开发
方便,我们需要设置一个静态IP。

  1. 编辑-》虚拟网络编辑器

    image-20220803143838071

  2. 前边配置的NAT模式,所以选中这个

    image-20220803144023930

  3. 点击【更改设置】,会重新进入

    image-20220803144132798

    配置网络段(子网ip段)为192.168.184.0,点击【NAT设置】,配置【网关ip】,注意【网关ip】需要在【子网ip】段下,这里设置为【192.168.184.2】

    image-20220803144731359

  4. 打开命令行,输入vim /etc/sysconfig/network-scripts/ifcfg-ens33,并修改配置文件内容

    image-20220803151741951

    信息说明:

    • IPADDR:需要在刚设置的子网IP网段下。这里设置为192.168.184.128image-20220803145243141

    • GATEWAY:需要和设置的保持一致。

      image-20220803145501739

    • NETMASK:255.255.255.0

    • DNS1:和GATEWAY设置一致即可

  5. 重启网络服务

    service network restart
    
  6. 检测是否配置成功

    ifconfig
    

    image-20220803145839476

    Ping外网:

    ping www.baidu.com
    

    image-20220803151937022

    Ping本机:

    ping 192.168.184.128
    

    image-20220803152348353

    Ping宿主机:

    ping 192.168.65.75
    

    image-20220803152600671

MobaXterm

MobaXterm是一款远程终端控制软件,集串口,SSH远程登录和FTP传输三合一的工具,便携版操作简单,使用非常方便。

下载

下载地址:https://mobaxterm.mobatek.net/download-home-edition.html

image-20220803152929116

使用方法
  1. 新建session

    image-20220803153511442

  2. 输入用户名、密码即可连接

    image-20220803153626696

建立连接之后,就可以很方便连接虚拟机主机。后续的所有操作,均使用MobaXterm。

Redis

下载

下载地址:https://download.redis.io/releases/

下载版本:redis-6.0.0.tar.gz

image-20220803163159736

安装步骤
  1. Redis是c开发的,因此安装redis需要c语言的编译环境,查看是否安装gcc

    gcc -v
    

    如果没有gcc,则需要在线安装.命令如下

    yum install gcc-c++
    
  2. 上传安装包

    image-20220429224940116

  3. 解压redis压缩包,解压命令如下

    tar -zxvf redis-6.0.0.tar.gz
    
  4. 进入redis目录后,ls打开目录下文件,查看是否存在Makefile,存在则直接make编译redis源码

    image-20220429225109019

    make
    

    image-20220803225029710

    image-20220429225200992

    如果make失败:

    image-20220803224249982

    一般是因为gcc版本过低,因此需要升级gcc,升级过程如下:

    yum -y install centos-release-scl
    

    image-20220803224731879

    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    

    image-20220803224851302

    scl enable devtoolset-9 bash
    echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
    gcc -v
    

    image-20220803224927463

  5. 安装编译后的redis代码到指定目录,一般存放于/usr/local下的redis目录,指令如下

    make install PREFIX=/usr/local/redis
    

    image-20220803225412428

  6. 查看redis目录下的bin目录里面的文件,如下

    image-20220803164925691

  7. 至此,可以启动redis了,默认启动模式为前端启动,指令如下

./redis-server

image-20220803165052105

到这里,基本的安装就完成了,但可以添加一些更好的设置,如下:

  1. 前端启动的话,如果客户端关闭,redis服务也会停掉,所以需要改成后台启动redis。
    具体做法分为两步:

    • 第一步:将redis解压文件里面的redis.conf文件复制到当前目录,指令如下

      cp redis-6.0.0/redis.conf ./bin
      

      image-20220803225831149

    • 第二步:修改redis.conf文件,将daemonize no -> daemonize yes,这样便将启动方式修改为后台启动了

      vim redis.conf
      

      image-20220803165325332

      小提示:保存修改并退出,按键如下(四步操作):

      Esc -> : -> wq -> Enter(回车)
      
    • 启动redis -> 后台启动

      ./redis-server redis.conf
      

      image-20220803165715541

    • 查看redis是否在运行,指令如下

      ps aux|grep redis
      
    • 打开redis连接

      ./redis-cli
      

      image-20220803165929801

      小提示:将连接到其他主机、端口,指令如下

      ./redis-cli -h 192.168.184.128 -p 6379
      
  2. Windows本地连接虚拟机中的Linux系统中的Redis,进入到Windows本地Redis根目录

    image-20220803171336246

    可以正常连接:

    image-20220803171513245

    如果不可以连接的话:

    在win本地访问到搭建的redis,可以把6379端口暴露出来:

    firewall-cmd --zone=public --add-port=6379/tcp --permanent
    

    然后重启一下防火墙:

    systemctl restart firewalld
    

    Tips:

    (1)设置开机启用防火墙:systemctl enable firewalld.service

    (2)设置开机禁用防火墙:systemctl disable firewalld.service

    (3)启动防火墙:systemctl start firewalld

    (4)关闭防火墙:systemctl stop firewalld

    (5)检查防火墙状态:systemctl status firewalld

    如果这种方法不可以的话修改如下配置:

    • 配置redis.conf文件,修改bind。把原来的bind 127.0.0.1 改成bind 0.0.0.0 这样redis就可以接受其他主机连接

      image-20220804235424308

    • 修改protect。这样就可以解除redis的保护机制,可以被其他主机连接

      image-20220804235450826

开机自启

编辑redis.service文件, 增加如下信息 (nacos路径替换成自己的路径即可)

vi /etc/systemd/system/redis.service
[Unit]
Description=redis
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

保存后执行以下命令:

#重新加载所有service服务
systemctl daemon-reload
#开机启动nacos.service
systemctl enable redis.service
#查看该service是否开机启用
systemctl is-enabled redis.service
#启动该服务
systemctl start redis.service
#查看状态
systemctl status redis.service

image-20220804233921863

JDK

下载

下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

下载版本:jdk-8u201-linux-x64.tar.gz

安装步骤
  1. 先检查环境是否有自带的JDK

    rpm -qa | grep jdk
    

    image-20220803181916962

  2. 如果有自带环境,先进行卸载。执行命令进行卸载,后缀".noarch"不用理会

    rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
    rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
    

    image-20220803182258483

    删完之后可以再通过rpm -qa | grep Java 命令来查询出是否删除掉

  3. 接下来就是要安装自己的jdk了,进入/usr/local/src上传刚下载的jdk-8u201-linux-x64.tar.gz

    image-20220803183146007

  4. 解压jdk-8u201-linux-x64.tar.gz

    image-20220803183620434

    image-20220803183644321

  5. 通过命令 cd /usr/local/ 进入目录创建java文件夹

    image-20220803183328091

  6. 进入Java文件夹,移动刚才解压的jdk1.8.0_201

    image-20220803183948890

  7. 接下来开始配置环境变变量,通过 vi /etc/profile 命令打开 profile 文件盘配置环境变量,打开之后按 i 进入 insert (插入)模式,在文件末尾添加上环境变量

    # JDK环境变量
    export JAVA_HOME=/usr/local/java/jdk1.8.0_201
    export JRE_HOOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=.:${JAVA_HOME}/bin:$PATH
    

    image-20220803185756099

  8. 保存完之后输入,使用命令使刚才配置的环境变量生效

    source /etc/profile
    
  9. 测试jdk是否安装成功

    image-20220803185852507

MySQL

下载

下载地址:https://downloads.mysql.com/archives/community/

下载版本:mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

image-20220804113853114

安装步骤
  1. 上传本地tar压缩包到服务器

    image-20220804114406335

  2. 卸载系统⾃带的MARIADB(如果有)。如果系统之前⾃带 Mariadb ,可以先卸载之。
    首先查询已安装的 Mariadb 安装包:

    rpm -qa|grep mariadb
    

    image-20220804114711485

    卸载掉:

    yum -y remove mariadb-libs-5.5.68-1.el7.x86_64
    

    image-20220804115316550

  3. 解压MYSQL安装包

    进入/usr/local/src目录,解压:

    tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local
    

    进入/usr/local,解压后的文件移动到mysql:

    image-20220804115833340

  4. 创建MYSQL用户和用户组

    groupadd mysql
    useradd -g mysql mysql
    

    image-20220804121047494

    同时新建 /usr/local/mysql/data 目录,后续备用

    image-20220804121223098

  5. 修改MYSQL目录的归属⽤户,在mysql目录执行

    chown -R mysql:mysql ./
    

    image-20220804121345266

  6. 准备MYSQL的配置文件

    /etc 目录下新建 my.cnf文件。写入如下简化配置:

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    socket=/var/lib/mysql/mysql.sock
    [mysqld]
    skip-name-resolve
    #设置3306端口
    port = 3306
    socket=/var/lib/mysql/mysql.sock
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    

    image-20220804121922212

    image-20220804122228297

    image-20220804122208179

    同时使⽤如下命令创建 /var/lib/mysql ⽬录,并修改权限:

    mkdir /var/lib/mysql
    chmod 777 /var/lib/mysql
    

    image-20220804122410824

  7. 正式开始安装MYSQL。执⾏如下命令正式开始安装:

    进入/usr/local/mysql:

    cd /usr/local/mysql
    

    然后:

    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    

    image-20220804122756357

    注意:记住上⾯打印出来的 root 的密码,后面首次登录需要使用:

    2022-08-04T04:27:22.421873Z 1 [Note] A temporary password is generated for root@localhost: cpQ;/Pwss1<L
    
  8. 复制启动脚本到资源目录

    cp ./support-files/mysql.server /etc/init.d/mysqld
    

    image-20220804123034678

    并修改 /etc/init.d/mysqld ,修改其 basedirdatadir 为实际对应目录:

    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    

    image-20220804123542365

    image-20220804123458432

  9. 设置MYSQL系统服务并开启自启

    首先增加 mysqld 服务控制脚本执行权限:

    chmod +x /etc/init.d/mysqld
    

    image-20220804123717758

    同时将 mysqld 服务加入到系统服务:

    chkconfig --add mysqld
    

    image-20220804123816464

    最后检查 mysqld 服务是否已经生效即可:

    chkconfig --list mysqld
    

    image-20220804123952389

    这样就表明 mysqld 服务已经生效了,在2、3、4、5运行级别随系统启动而⾃动启动,以后可以直接使用 service 命令控制 mysql 的启停。

  10. 启动MYSQLD

    service mysqld start
    

    image-20220804124112364

  11. 将 MYSQL 的 BIN 目录加入 PATH 环境变量,这样方便以后在任意目录上都可以使用 mysql 提供的命令。

    编辑 ~/.bash_profile 文件,在文件末尾处追加如下信息:

    export PATH=$PATH:/usr/local/mysql/bin
    

    image-20220804124437217

    image-20220804124408844

    最后执行如下命令使环境变量生效:

    source ~/.bash_profile
    

    image-20220804124608320

  12. 首次登录MYSQL,以 root 账户登录 mysql ,使用安装完成提示的密码进行登录

    mysql -u root -p
    

    image-20220804125059951

  13. 接下来修改ROOT账户密码,在mysql的命令行执行如下命令即可,密码可以换成你想用的密码即可:

    mysql>alter user user() identified by "123456";
    mysql>flush privileges;
    

    image-20220804125325200

  14. 设置远程主机登录

    mysql> use mysql;
    mysql> update user set user.Host='%' where user.User='root';
    mysql> flush privileges;
    

    image-20220804125524516

    如果远程连不上的话,可能是防火墙的问题,端口没有在防火墙开放

    firewall-cmd --permanent --zone=public --add-port=3306/tcp  
    firewall-cmd --reload  
    firewall-cmd --zone=public --query-port=3306/tcp 
    

    image-20220804131153037

Nacos

下载

下载地址:https://github.com/alibaba/nacos/releases

下载版本:nacos-server-2.0.3.tar.gz

Github下载速度很慢,附上百度网盘资源:

链接:https://pan.baidu.com/s/1FIuq9_RRHFk1wKdOPSkvZw
提取码:ds65

安装步骤
  1. 解压并移动

    tar -zxvf nacos-server-2.0.3.tar.gz
    mv nacos /usr/local
    

    image-20220804163112379

  2. 修改 startup.sh:更改java 的安装目录和 export MODE=“standalone”

    进入/usr/local/nacos/bin

    image-20220804145822373

  3. 配置nacos的数据库连接信息

    vi /usr/local/nacos/conf/application.properties
    
    # db mysql
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/center-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user=root
    db.password=123456
    

    image-20220804164719071

  4. 执行SQL脚本,注意数据库名称

    image-20220804164824267

    由于本人学习过程中,将sql脚本集成到了一个Spring Boot 项目中了,故这里可以直接运行Jar包,jar包哪里来,后面会介绍:

    java -jar center-data-nacos-config.jar
    

    image-20220804165051266

  5. 进入 bin 目录,启动程序:

    ./startup.sh
    

    image-20220804151703953

  6. 暴露端口

    firewall-cmd --permanent --zone=public --add-port=8848/tcp  
    firewall-cmd --reload
    firewall-cmd --zone=public --query-port=8848/tcp
    

    image-20220804152305967

  7. 访问地址:http://192.168.184.128:8848/nacos/index.html

    用户名/密码:nacos/nacos

    image-20220804165206734

开机自启

进入/lib/systemd/system目录,创建nacos.service文件

cd /lib/systemd/system
touch nacos.service

image-20220804191936191

编辑nacos.service文件, 增加如下信息 (nacos路径替换成自己的路径即可)

vim /lib/systemd/system/nacos.service
[Unit]
Description=nacos
After=network.target

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

[Install]
WantedBy=multi-user.target

保存后执行以下命令

#重新加载所有service服务
systemctl daemon-reload
#开机启动nacos.service
systemctl enable nacos.service
#查看该service是否开机启用
systemctl is-enabled nacos.service
#启动该服务
systemctl start nacos.service

image-20220804191848430

查看该服务状态:

systemctl status nacos.service

image-20220804192428577

Node.js

下载

下载地址:https://registry.npmmirror.com/binary.html?path=node/v14.17.0/

下载版本:node-v14.17.0-linux-x64.tar.xz

安装步骤
  1. 上传包至/usr/local/src

    image-20220804172242379

  2. /usr/local/ 下创建 node 文件夹并进入

  3. 将 Node 的安装包解压到 /usr/local/node 中即可

    tar -xJvf /usr/local/src/node-v14.17.0-linux-x64.tar.xz -C ./
    

    解压完之后, /usr/local/node ⽬录中会出现⼀个 node-v14.17.0-linux-x64 的目录

    image-20220804180751488

  4. 配置NODE系统环境变量

    编辑 ~/.bash_profile 文件,在文件末尾追加如下信息:

    vi ~/.bash_profile
    
    # Nodejs
    export PATH=/usr/local/node/node-v14.17.0-linux-x64/bin:$PATH
    

    image-20220804181109443

    刷新环境变量,使之生效即可:

    source ~/.bash_profile
    
  5. 检查安装结果

    node -v
    npm version
    npx -v
    

    均有版本信息输出即可:

    image-20220804181327710

nginx

下载

下载地址:https://nginx.org/en/download.html

下载版本:nginx-1.18.0.tar.gz

image-20220805172718494

安装步骤
  1. 创建文件夹并进入

    mkdir /usr/local/nginx
    
  2. 解压

    tar -zxvf /usr/local/src/nginx-1.18.0.tar.gz -C ./
    

    image-20220805173115329

  3. 预先安装额外的依赖

    yum -y install pcre-devel
    

    image-20220805173531486

    yum -y install openssl openssl-devel
    

    image-20220805173609883

  4. 编译安装NGINX

    cd nginx-1.18.0
    ./configure
    make && make install
    

    image-20220805173851540

  5. 安装完成后,Nginx的可执行文件位置位于/usr/local/nginx/sbin/nginx

    image-20220805174018941

  6. 直接执行如下命令即可:

    /usr/local/nginx/sbin/nginx
    

    如果想停止Nginx服务,可执行:

    /usr/local/nginx/sbin/nginx -s stop
    

    如果修改了配置文件后想重新加载Nginx,可执行:

    /usr/local/nginx/sbin/nginx -s reload
    

    注意其配置文件位于:

    /usr/local/nginx/conf/nginx.conf
    
  7. 防火墙暴露80端口

    #设置80端口开放
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    #重启防火墙
    firewall-cmd --reload
    #验证80端口是否开放成功
    firewall-cmd --zone=public --query-port=80/tcp
    

    image-20220805174544150

  8. 浏览器验证启动情况

    image-20220805174630130

开机自启
  1. 创建开机自启脚本

    vi /etc/systemd/system/nginx.service
    
    [Unit]
    Description=nginx service
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    保存后执行以下命令:

    #重新加载所有service服务
    systemctl daemon-reload
    #开机启动nacos.service
    systemctl enable nginx.service
    #查看该service是否开机启用
    systemctl is-enabled nginx.service
    #启动该服务
    systemctl start nginx.service
    #查看状态
    systemctl status nginx.service
    

项目部署

在这里使用的是一个个人学习项目。

Center Platform v1.0.0
基于 Vue/Element UI 和 Spring Boot/Spring Cloud & Alibaba 前后端分离的分布式微服务架构

项目简介

Center Platform 是一套基于RuoYi框架的快速开发平台,毫无保留给个人及企业免费使用。

  • 采用前后端分离的模式,微服务版本前端。
  • 后端采用Spring Boot、Spring Cloud & Alibaba。
  • 注册中心、配置中心选型Nacos,权限认证使用Redis。
  • 流量控制框架选型Sentinel,分布式事务选型Seata。

友情链接 若依/RuoYi-Cloud

Windows环境下

项目启动
前端启动步骤
  1. clone项目
    git clone https://gitee.com/haaaaaaaaaaaa/center-platform.git
    
  2. 进入前端项目(center-ui)根目录执行命令
    npm install
    
  3. 依赖下载完毕之后
    npm run dev
    
  4. 至此前端项目启动完毕
后端启动步骤
  1. 新建数据库,名称分别为:centercenter-configcenter-seata,不需要手动执行SQL脚本,后续步骤可以自动建立系统需要的表和数据。建议启动项目之前不要修改项目中数据库URL,等到项目成功运行之后,再进行个性化修改。
  2. 项目在Idea中打开之后,等待依赖下载完毕。
  3. 成功之后进入种子数据模块:
     ├── center-data                            // 种子数据模块
     │       └── center-data-common             // 基础种子数据模块[9400]
     │       └── center-data-nacos-config       // Nacos种子数据初始化模块[9500]
     │       └── center-data-seata              // Seata种子数据初始化模块[9600]
    
  4. 首先运行CenterDataNacosConfigApplication,成功执行之后,自动将Nacos需要的数据初始化到数据库中。成功运行截图如下:

    此时数据库center-config中已经生成了相关表以及插入了相关数据。
  5. 修改Nacos配置文件中数据库为center-config,配置自己的数据库连接密码:
  6. Nacos配置完成之后,启动Nacos。
  7. 接下来运行CenterDataCommonApplication,成功执行后即自动在数据库center中建立相关表,以及插入初始化数据。
  8. 然后运行CenterDataSeataApplicationCenterDataCommonApplicationCenterDataSeataApplication没有严格顺序要求。
  9. 至此,项目启动所需要的数据库以及表、表数据均已初始化完毕。
  10. 本地启动Redis,先不要使用密码,成功运行之后再根据需要修改配置,添加个性化设置。
  11. 启动必需服务:CenterAuthApplicationCenterFileApplicationCenterGatewayApplicationCenterSystemApplication
  12. 恭喜你!到这里后端启动成功。不出意外,此时你便可以进入系统,开始你的创造,感谢使用!

CentOS 7 环境下

后端部署
新建数据库

远程连接CentOS 7 环境中的数据库,新建:center、center-config、center-seata。只需要新建数据库库即可,不用执行SQL脚本。

image-20220805131730287

image-20220805131617916

Shell脚本
启动种子服务jar包脚本

创建文件夹:

mkdir -p /usr/local/center/center-data

创建脚本:

vi /usr/local/center/center-data/center-data.sh
#进入jar包目录
cd /usr/local/center/center-data

APP_NAME=`find *.jar`

if [ -n "$2" ]; then
	string="$2"
	array=(${string//,/ })
	APP_NAME=${array[@]}
	echo "==================== Selected Service ==================== "
	for var in $APP_NAME ;do
		echo "$var"
	done
	echo "========================================================== "
fi

#使用说明,用来提示输入参数
usage() {
	echo "Usage: ./center-data.sh [start|stop|restart|status] [app_name]"
	exit 1
}

#检查程序是否在运行
is_exist() {
	for var in $APP_NAME ;do
		pid=`ps -ef|grep $var|grep -v grep|awk '{print $2}' `
		#检查程序是否在运行
		if [ -z "${pid}" ]; then
			echo "$var is NOT running"
		else
			echo "$var is running Pid is ${pid}"
		fi
	done
}

#启动方法
start() {
	for var in $APP_NAME ;do
		pid=`ps -ef|grep $var|grep -v grep|awk '{print $2}' `
		#检查程序是否在运行
		if [ -z "${pid}" ]; then
			echo "start run $var"
			nohup java -jar $var >/dev/null 2>&1 &
		else
			echo "$var is already running. pid=${pid} "
		fi
	done
}

#停止方法
stop() {
	for var in $APP_NAME ;do
		pid=`ps -ef|grep $var|grep -v grep|awk '{print $2}' `
		#检查程序是否在运行
		if [ -n "${pid}" ]; then
			kill -9 ${pid}
		else
			echo "${var} is not running"
		fi
	done
}

#输出运行状态
status() {
	is_exist
}

#重启
restart() {
	stop
	start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
	"start")
		start
	;;
	"stop")
		stop
	;;
	"status")
		status
	;;
	"restart")
		restart
	;;
	*)
		usage
	;;
esac
启动常用服务jar包脚本

创建目录:

mkdir /usr/local/center/center-platform

创建脚本:

vi /usr/local/center/center-platform/center-platform.sh

Tips:

ps -ef|grep center-auth.jar|grep -v grep|awk '{print $2}'

指令解释:
ps:显示进程
-e:显示所有进程
-f:全格式

image-20220808124030002

grep:查找字符串
grep -v -grep:过滤自己执行的grep

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vpMCqLO3-1659950505371)(C:\Users\C\AppData\Roaming\Typora\typora-user-images\image-20220808124249348.png)]

awk:提取主要列列的主要工具

image-20220808124141105

#进入常用服务jar包目录
cd /usr/local/center/center-platform

APP_NAME=`find *.jar`

if [ -n "$2" ]; then
	string="$2"
	array=(${string//,/ })
	APP_NAME=${array[@]}
	echo "==================== Selected Service ==================== "
	for var in $APP_NAME ;do
		echo "$var"
	done
	echo "========================================================== "
fi

#使用说明,用来提示输入参数
usage() {
	echo "Usage: ./center-platform.sh [start|stop|restart|status] [app_name]"
	exit 1
}

#检查程序是否在运行
is_exist() {
	for var in $APP_NAME ;do
		pid=`ps -ef|grep $var|grep -v grep|awk '{print $2}' `
		#检查程序是否在运行
		if [ -z "${pid}" ]; then
			echo "$var is NOT running"
		else
			echo "$var is running Pid is ${pid}"
		fi
	done
}

#启动方法
start() {
	for var in $APP_NAME ;do
		pid=`ps -ef|grep $var|grep -v grep|awk '{print $2}' `
		#检查程序是否在运行
		if [ -z "${pid}" ]; then
			echo "start run $var"
			nohup java -jar $var >/dev/null 2>&1 &
		else
			echo "$var is already running. pid=${pid} "
		fi
	done
}

#停止方法
stop() {
	for var in $APP_NAME ;do
		pid=`ps -ef|grep $var|grep -v grep|awk '{print $2}' `
		#检查程序是否在运行
		if [ -n "${pid}" ]; then
			kill -9 ${pid}
		else
			echo "${var} is not running"
		fi
	done
}

#输出运行状态
status() {
	is_exist
}

#重启
restart() {
	stop
	start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
	"start")
		start
	;;
	"stop")
		stop
	;;
	"status")
		status
	;;
	"restart")
		restart
	;;
	*)
		usage
	;;
esac
脚本添加操作权限

分别进入脚本存放目录:

chmod +x center-platform.sh
chmod +x center-data.sh
脚本使用方法
#启动|重启|关闭 所有
./service.sh start|restart|stop
#启动|重启|关闭 单个
./service.sh start|restart|stop xxx.jar
#启动|重启|关闭 多个
./service.sh start|restart|stop xxx1.jar,xxx2.jar
种子数据服务jar包运行

按照顺序执行如下jar包:一定要第一个执行center-data-nacos-config.jar,这个是Nacos的配置数据库种子数据。

上传jar包

进入目录:

cd /usr/local/center/center-data

上传jar包:

image-20220805141515702

Tips:

能力有限,脚本差强人意,如果不喜欢的话,不使用也可以。直接使用命令一个一个启动即可:

java -jar xxx.jar
第一center-data-nacos-config.jar

很重要!!!第一个执行这个。

演示一下使用命令启动:

java -jar center-data-nacos-config.jar

image-20220805143716047

成功运行之后便会创建系统更需要的基础表及数据:

image-20220805143857963

本服务是Nacos的配置数据库种子数据初始化服务。后续步骤成功与否皆系于此。

第二center-data-common.jar
java -jar center-data-common.jar

image-20220805144023686

image-20220805144116417

成功运行之后便会创建系统更需要的基础表及数据:

image-20220805144204962

第三center-data-seata.jar
java -jar center-data-seata.jar

image-20220805144405427

image-20220805144434850

成功运行之后便会创建系统更需要的基础表及数据:

image-20220805144522125

至此,项目需要的数据库以及涉及的表数据均已准备好。

常用服务jar包运行
上传jar包

进入目录,上传jar包:

cd /usr/local/center/center-platform

image-20220805165158678

启动

Tips:

能力有限,脚本差强人意,如果不喜欢的话,不使用也可以。直接使用命令一个一个启动即可:

java -jar xxx.jar

演示命令启动:

java -jar center-auth.jar

image-20220805170848127

image-20220805170920649

其他服务是一样的,启动就行。

前端部署
  1. 打包,在vue工程根目录录执行打包命令

    npm run build:prod
    

    image-20220805175119388

  2. 压缩zip格式后上传

    image-20220805175437631

  3. 创建目录

    mkdir -p /usr/local/webapp/center-ui
    

    进入目录解压:

    unzip -d ./ /usr/local/src/dist.zip
    

    image-20220805180835904

  4. 打开Nginx配置

    vi /usr/local/nginx/conf/nginx.conf
    
    location / {
    	root   /usr/local/webapp/center-ui/dist;
    	index  index.html index.htm;
    	try_files $uri $uri/ /index.html?s=$uri&$args;
    	error_page 405 =200 http://$host$request_uri;
    }
    
    location /prod-api/{
    	proxy_set_header Host $http_host;
    	proxy_set_header X-Real-IP $remote_addr;
    	proxy_set_header REMOTE-HOST $remote_addr;
    	proxy_set_header X-Forwarded-For &proxy_add_x_forwarded_for;
    	proxy_pass http://localhost:9000/;
    }
    

    image-20220806160323950

  5. 重启Nginx

    /usr/local/nginx/sbin/nginx -s reload
    

    image-20220805181548366

  6. 查看

    在这里插入图片描述

    如果小图标不显示:Ctrl+Shift+R

    image-20220806181021030

声明:
本篇文章为学习笔记,若作品涉及版权或存在其他问题,请联系我删除。
谢谢浏览!
  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值