Spring Cloud Alibaba 微服务部署

一、安装jdk环境(1.8)

1、以Linux系统部署为主,我这边用的系统是ubuntu。

2、准备好一个JDK的压缩包,可以去官网下载,常用版本JDK8

3、将压缩包可以存放于 /opt 或者 /usr/local 目录下,然后进行解压,如果是.zip压缩文件,可以使用unzip 命令来解压缩。

// 解压命令
tar -xvf jdk-8u341-linux-x64.tar.gz

4、配置环境变量

// 进入编辑配置状态
vim /etc/profile

// 添加JAVA_HOME 路径一定要和自己解压后的文件路径一致
export JAVA_HOME=/opt/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5、重新加载配置,将第四步修改的环境变量进行重新加载生效。

// 重新加载配置文件
source /etc/profile

6、进行测试

java -version

  如果此时显示了Java的版本好说明已经完成了

二、安装Nacos

1、下载好压缩包存放于/home/data/cgt/nacos (没有目录文件可以自行创建,根据自己的需求放在自己所在的文件夹中)

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

// 创建目录
mkdier 目录名

2、解压后进入bin目录,单线程独立启动nacos,这个一定要注意,比较重要。

sh startup.sh -m standalone

【注意】:

       nacos独立启动,如未配置集群,需要下线集群管理里面的其它节点,否则线上部署独立启动后会报错。

三、服务bootstrap.yml配置

# Tomcat
server:
  port: 9205
# Spring
spring:
  application:
    # 应用名称
    name: qzd-merchant
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        password: nacos
        username: nacos
        namespace: fefe5014-446c-4129-ac64-2c14335ade23
      config:
        namespace: fefe5014-446c-4129-ac64-2c14335ade23
        password: nacos
        username: nacos
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置 ${spring.profiles.active}
        shared-configs:
          - application-prod.${spring.cloud.nacos.config.file-extension}
  main:
    allow-circular-references: true

【注意】:

        discovery是服务注册管理,server-addr: 127.0.0.1:8848 需要填写nacos部署的服务器ip地址,将其配置配好后可以注册到nacos。       

       config是服务配置管理(如数据连接、mq、redis等),server-addr: 127.0.0.1:8848 需要填写nacos部署的服务器ip地址,将其配置配好后可以使用配置文件。

四、服务包部署

1、将自己的服务项目打包后上传至服务器指定目录

 我习惯于存放在/home这个目录下,大家可以根据自己的情况而定。

2、项目jar包启动

       (1)脚本一键启动

#!/bin/bash
#存放jar包的目录,此地的目录一定是自己当前目录存放的jar包位置目录,与启动脚本保持同级
APP_NAME=/home/cgt/data/qzd-gateway-encrypted.jar

#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo $pid "进程终止成功"

sleep 2

#判断jar包文件是否存在,如果存在启动jar包
if test -e $APP_NAME
then
    echo '文件存在,开始启动此程序...'

    # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件  ip:为当前部署的服务器ip
     nohup java -javaagent:$APP_NAME -jar  -Dspring.cloud.nacos.discovery.ip=127.0.0.1 -Dcom.alibaba.nacos.naming.log.level=warn -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m $APP_NAME --spring.profiles.active=prod &

     #输出启动成功

     echo $APP_NAME' 启动成功...'
 else
     echo $APP_NAME'$APP_NAME 文件不存在,请检查。'
 fi

【注意】:

       上述脚本启动jar包目录需要和自己的jar包目录保持一致,启动命令里面的当前服务器公网ip一定不能弄错了,否则都会启动失败。(--spring.profiles.active=prod 这一句表示的是如果有多个配置文件,可以随意切换,多数据源配置,如果没有可以去掉这句。)

       (2)命令行启动

nohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar -Dspring.cloud.nacos.discovery.ip=127.0.0.1 jeepay-payment.jar --spring.profiles.active=pro &

【注意】:

       ip一定要是公网ip可访问,并且要和当前服务器ip对应。

五、nginx配置

nginx的下载和安装这里就不说了,不清楚的大家可以网上搜一搜都比较简单。

server {
    listen       80;
    # 安全证书
    listen       443 ssl;
    # 服务访问域名
    server_name  www.baidu.com;
    #前端包的文件目录
    root    /usr/share/nginx/html/cgt;
    index  index.html  index.htm;
    # ssl认证证书,切记目录一定要是从根目录到具体的ssl证书位置
    ssl_certificate  /home/your.crt;
    ssl_certificate_key /home/your.key;

    error_page  404  /index.html;

    location /api2 {
        client_max_body_size 20M;
        # 接口访问地址
        proxy_pass https://www.baidu.com;
        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;
        add_header Access-Control-Allow-Headers 'Content-Type, Accept, Authorization, X-Requested-With, Origin, Accept,clientType,appId,rpcAppid,rpcSecretKey';
    }
}

server {
        listen       80;
        listen       443 ssl;
        # 接口域名
        server_name  www.baodu.com;
        ssl_certificate  /home/your.crt;
        ssl_certificate_key /home/your.key;

        error_page  404  /index.html;
        
        location /api2 {
            client_max_body_size 20M;
            # 网关IP:端口 此处是网关服务的部署所在的服务器ip和网关端口
            proxy_pass http://127.0.0.1:18018;
            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;
            add_header Access-Control-Allow-Headers 'Content-Type, Accept, Authorization, X-Requested-With, Origin, Accept,clientType,appId,rpcAppid,rpcSecretKey';
        }
    }

【注意】:

       一般预留域名会有一个两个或者多个,我这边是使用的有两个域名,一个是面向用户访问的服务域名,还有一个内部接口调用的域名,具体可以根据自己的业务需求进行调整。由于小程序部署必须要安全证书,所以ssl配置也是必须的。关于路径问题一定要严谨,千万不能弄错了,否则会导致服务无法访问等等问题。

这里可以分享一下nginx下载后的启动命令

// 全局启动
systemctl restart nginx
// 查询启动状态
systemctl status nginx
// 重新加载启动
nginx -s reload

重新加载启动命令格外重要,每次修改nginx配置文件后都需要重新加载才能生效。

       

  • 34
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值