热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端文件采用传统nginx部署访问,后端应用放到k8s中的操作配置说明

1.把前端dist文件夹放到nginx的html目录下
2.把后端应用部署到k8s中
3.nacos,redis,mysql,rabbitmq都采用外置的,有关配置都写道nacos中
前端文件采用传统nginx部署访问,后端应用放到k8s中的操作配置说明

nginx

nginx安装在主机192.168.80.221上,测试域名为www.xxx.com
在这个主机的/etc/hosts上添加一条解析

# cat /etc/hosts
192.168.80.221 www.xxx.com

当然了,本机windows电脑上的hosts文件也添加这个解析,方便本机使用浏览器访问这个域名,找到对应的主机。

前端文件

1.前端文件:vue.config.js
这个文件中连接后端的地址,是本地测试用的,使用的命令是:yarn run server,在这里不修改这个文件,保持原样

  devServer: {
    port: 3000,
    proxy: {
      '/jdd-parking-cloud-admin': {
        target: 'http://localhost:8093/', //请求本地后台项目
        ws: true,
        changeOrigin: true,
        pathRewrite: {
          '^/jdd-parking-cloud-admin': '/' //默认所有请求前缀,需要去掉
        }
      }
    }
  },

2.前端文件:src\utils\request.js

这个文件中连接后端的地址,是部署到线上生产使用的,使用的命令是:yarn run build,会生成一个dist文件夹,在这里修改这个文件,注意域名和路径要跟nginx的配置保持一致,www.xxx.com和/jdd-parking-cloud-admin

// 创建 axios 实例
const service = axios.create({
  baseURL: process.env.NODE_ENV === 'production' ? 'http://www.xxx.com/jdd-parking-cloud-admin' : '/jdd-parking-cloud-admin',  
  // baseURL: 'https://www.jdd966.com/jdd-boot',
  // baseURL: '', // api base_url
  timeout: 30000 // 请求超时时间
})

后端

后端项目使用的Dockerfile文件内容

FROM jdd.io/jre:1.8.0_275
MAINTAINER 1103324414@qq.com
EXPOSE 8093
ADD target/jdd-parking-cloud-admin.jar jdd-parking-cloud-admin.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-jar","jdd-parking-cloud-admin.jar"]
CMD ["--spring.profiles.active=test"]

后端项目使用的.gitlab-ci.yml文件内容

variables:
  DOCKER_DRIVER: overlay2
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  #CURRENT_PROJECT: gateway # 编译的子项目,每次需要修改这个

cache:
  paths:
    - .m2/repository/

stages:
  - package
  - build

maven_step:
  tags:
    - maven
  stage: package
  script:
    - mvn clean package -Dmaven.test.skip=true
  artifacts:
    paths:
      - target/*.jar
  only:
    - prod

develop_docker_step:
  tags:
    - docker
  stage: build
  script:
    - export TAG=`date "+%Y%m%d%H%M%S"`
    - docker build -t jdd.io/jdd-k8s/$CI_PROJECT_NAME:$TAG .
    - docker login -u admin -p admin123 jdd.io
    - docker push jdd.io/jdd-k8s/$CI_PROJECT_NAME:$TAG
    - echo $TAG
    - docker rmi jdd.io/jdd-k8s/$CI_PROJECT_NAME:$TAG
  only:
    - prod

后端应用具体部署方式中的关键点

k8s中部署
1.新增名称空间:jdd-k8s

2.新增ConfigMap
名称:park-config
数据:
NACOS_SERVER_ADDR 192.168.2.162:8848
PROFILE test

![](https://img2020.cnblogs.com/blog/794174/202106/794174-20210630143251451-461930710.png)


3.容器参数
spring的profile Nacos配置中心地址 Nacos服务发现地址 服务端口
--spring.profiles.active=${PROFILE} --spring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR} --spring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR} --server.port=#根据实际情况来定


4.容器环境变量
park-config

5.容器端口 	
tcp 根据实际情况来定

![](https://img2020.cnblogs.com/blog/794174/202106/794174-20210630143406084-1561084424.png)


6.使用的镜像是根据gitlab-runner生成的,上传到nexus仓库里的

k8s中后端应用pod启动后的日志显示如下:

----------------------------------------------------------
        Application Jdd-Parking-Cloud-Admin is running! Access URLs:
        Local:          http://localhost:8093/
        External:       http://10.0.2.20:8093/
        swagger-ui:     http://10.0.2.20:8093/swagger-ui.html
----------------------------------------------------------

部署到k8s中,并且nginx代理需要访问到,所以需要给后端应用设置service,并且选择NodePort方式,记住节点端口号,这里假设地址后端应用访问地址是:http://192.168.2.163:30594
并且通过地址:http://192.168.2.163:30594/swagger-ui.html 可以访问到后端接口文件,说明后端应用这边没啥问题。

配置nginx

把前端dist文件夹放到nginx的html目录下,并重命名为mgr,然后重启nginx

server {
    listen       80;
    server_name  www.xxx.com; # 本机解析域名
    location / {
        root  /usr/local/openresty/nginx/html;
        index  index.html index.htm;
        if (!-e \$request_filename) {
            rewrite ^(.*)\$ /index.html?s=\$1 last;
            break;
        }
    }
    # 注意,路径最后的/不能少
    location /jdd-parking-cloud-admin/ {
        proxy_pass              http://192.168.2.163:30594/;  # 请求的是k8s中的后端应用,NodePort形式的service
        proxy_set_header        Host park-single-system;
        proxy_set_header        X-Real-IP \$remote_addr;
        proxy_set_header        X-Forwarded-For \$proxy_add_x_forwarded_for;
    }
}

若是页面中有图片没有显示出来,则可以直接修改nginx配置,增加图片访问路径

location /static/images/ {
    alias  /home/park/images/;
    autoindex on;
}

测试访问

用本地的windows电脑打开浏览器,输入地址:http://www.xxx.com/mgr 进行访问,出现登录界面后,且显示有验证码,输入账号密码能登陆进去

更新

1.前端
本机yarn build后生成dist文件夹,把该文件夹里面的文件直接替换mgr目录下的文件

2.后端
本地修改代码后,提交到gitlab,触发gitlab-runner根据.gitlab-ci.yml文件自动构建docker镜像上传到nexus仓库
然后在k8s界面,找到对应的后端应用,直接更新pod使用的镜像版本:标签


推荐阅读
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 这也太简单了!轻松操作Feign 服务调用使用 Zipkin 链路追踪!
    0、介绍分布式微服务时代,方便了业务的快速增长和服务的稳定,但是系统出现问题后,面对同业务多服务排查起来令人头大。这时候领导就想着集成分布式追踪系统。Zipkin是T ... [详细]
  • KVM配置调整
    一内存CPU调整1.1增大虚拟机内存[root@k8s-01~]#virshshutdownvm01-centos7域vm01-centos7被关闭[root@k8s-01~]#v ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 熟练掌握Spring Cloud,终于成为Java工程师的面试门槛 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
  • scrapyredis 下载器并发数波动以及下载速度无法达到理论值的问题
    问题在用scrapy-redis进行分布式采集的过程中,分 ... [详细]
  • Nextcloudsnap一键安装包: https:github.comextcloudextcloud-snap建议安装Ubuntu系统,因为官方一键安装包用的是Snap,Cen ... [详细]
  • 【云计算】Dockerfile、镜像、容器快速入门 ... [详细]
  • rabbtimq相关下载与安装
    rabbitmq与elang版本关系查看https:www.rabbitmq.comwhich-erlang.html#eol-series  rpm下载地址https:githu ... [详细]
author-avatar
mobiledu2502876293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有