jenkins 前后端项目部署流程(测试篇)


前言

这是一篇关于使用jenkins部署前后端项目的文章,基础环境是:一台安装了java环境的linux 服务器、jenkins部署软件,一套前后端部署代码。从nginx安装,到前端部署,到后端部署,到项目正常运行。主要是写给测试同学来看。


让我们开始部署流程吧

一、linux 安装nginx

1、检查是否已经安装nginx

使用命令查找nginx位置:

whereis nginx

如果显示以下内容则说明本机是已经安装了nginx,当然也可以使用其他方式入yum方式,根据安装方式来定。如果是已经安装了则可以跳过安装直接进入第二部分(部署前端代码步骤)

在这里插入图片描述

2、安装nginx

在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可

  1. 先安装gcc-c++编译器
yum install gcc-c++
yum install -y openssl openssl-devel
  1. 安装pcre包
yum install -y pcre pcre-devel
  1. 安装zlib包
yum install -y zlib zlib-devel
  1. 在/usr/local/下创建文件nginx文件
mkdir /usr/local/nginx
  1. 在网上下nginx包上传至Linux(https://nginx.org/download/),也可以直接下载
wget https://nginx.org/download/nginx-1.19.9.tar.gz
  1. 解压并进入nginx目录
tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9
  1. 使用nginx默认配置
./configure
  1. 编译安装
make
make install
  1. 查找安装路径
whereis nginx
  1. 进入sbin目录,可以看到有一个可执行文件nginx,直接./nginx执行。
./nginx
  1. 查看是否启动成功
ps -ef | grep nginx

如果显示以下内容代表安装成功。
在这里插入图片描述

二、部署前端代码

1、使用jenkins创建前端流水线

jenkins部署前端代码的方式有好多种,这里用freestyle project的方式,这种方式比较友好,不用学习一些语法什么。
登入jenkins首页:点击dashboard>新建item,输入一个任务名称,选择freestyle project之后点击确定进入配置详情页面
在这里插入图片描述

2、配置流水线

  1. 输入github项目地址:http://xxxxxxxxxxxxxxxxx.git
    在这里插入图片描述

  2. 设置git相关参数以及自定义参数
    在这里插入图片描述

  3. 源码管理:配置git仓库,访问凭证,设置默认分支
    在这里插入图片描述

  4. 构建环境: 选择构建环境
    在这里插入图片描述

  5. 构建:配置构建命令,这里使用yarn 构建的,当然也可以使用npm或其他,命令如下(命令各不相同,根据自己项目而定)

rm -rf build/
rm -rf node_modules
export CI=false
yarn install &&
yarn build 
tar -cvzf ${project}.tar.gz -C build/ .
echo "当前目录"
ls

在这里插入图片描述

  1. 构建后的操作:配置构建后的操作。
    执行命令如下(命令各不相同,根据自己项目而定):
echo "我在远程服务器啦"
pwd
cd /root/temp/${project}
pwd
echo '创建目录'
mkdir dist
echo "解压压缩包"
tar -xvf ${project}.tar.gz -C /root/temp/${project}/dist
echo "删除原来的文件"
rm -rf /opt/java/${project}/dist/*
echo "复制当前的文件"
cp -r /root/temp/${project}/dist/*  /opt/java/${project}/dist/
echo "删除临时文件夹"
rm -rf  /root/temp/${project}

在这里插入图片描述

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context
  1. 点击保存,这条流水线就算已经完成了,之后点击build with Parameters,输入相关参数,点击构建就算基本完成了。
    在这里插入图片描述

3、使用jenkins部署后端

这里和前端一样也是通过freestyle project的方式进行创建流水线。

  1. 和前端一样,新建item,输入一个任务名称,选择freestyle project项目进行创建,确定后进入配置页面。
  2. 和前端一样,同样设置两个参数
    在这里插入图片描述
  3. 源码管理,同前端一样设置,
    在这里插入图片描述
  4. 输入构建命令,命令因项而异
    在这里插入图片描述
  5. 构建后操作:同前端设置一样配置。
    执行shell命令如下(命令因项目而异):
pwd
cd /root/temp/${project}
rm -rf /opt/java/${project}/*
cp hzss-app-1.0.0-SNAPSHOT.tar.gz /opt/java/${project}/
cd /opt/java/${project}/
tar -zxvf hzss-app-1.0.0-SNAPSHOT.tar.gz
cd bin
./dt-hzss.sh restart dev

在这里插入图片描述

  1. 点击保存之后,build with Parameters,输入参数,点击构建。

三、修改nginx配置

1、配置nginx

  1. 进入配置文件所在目录
cd /usr/local/nginx/conf
  1. 修改nginx.conf文件
vi nginx.conf
  1. 在http修改或增加配置项
http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 1024M; # 上传文件大小限制
    sendfile on; # 设置为on表示启动高效传输文件的模式
    keepalive_timeout 1800; # 保持连接的时间,默认65
    ...
  }  
  1. 设置监听端口
 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        root /opt/java/test/dist; #页面访问目录
        index  index.html index.htm;#首页
        location /api/ {
            proxy_pass http://localhost:8668/api/; #后端代码接口地址
            proxy_connect_timeout 6000;#链接超时设置
            proxy_read_timeout 6000;#访问接口超时设置
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Real-PORT $remote_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }


总结

这里演示了一个前后端项目构建的整个过程,类似于其他项目通过jenkins配置方式步骤都是如此,但是过程中执行命令以及一些设置项会有差异,需要开发或测试人员,要了解每个设置模版的作用才能更加灵活。

前后端分离的分布式项目部署通常包括以下几个步骤: 1. 前端部署: - 打包前端代码:将前端代码使用构建工具(如Webpack)进行打包,生成静态文件(HTML、CSS、JavaScript)。 - 部署静态文件:将打包好的静态文件上传至一个静态文件服务器(如Nginx),通过域名或IP地址访问。 2. 后端部署: - 选择合适的云平台:根据项目需求选择合适的云服务提供商(如AWS、阿里云、腾讯云)。 - 虚拟机或容器化部署:创建虚拟机实例或使用容器技术(如Docker)创建容器,并在其中部署后端代码。可以使用自动化部署工具(如Ansible、Kubernetes)来简化部署流程。 - 数据库部署:根据项目需要选择适合的数据库类型(如MySQL、MongoDB),在数据库服务器上创建并配置数据库实例。 3. 网络配置: - 前后端通信:配置前端与后端的网络通信,确保前端能够正确地发送请求到后端接口。 - 负载均衡:使用负载均衡技术(如Nginx、HAProxy)来分发请求,提高系统的并发处理能力和可用性。 - 安全配置:配置SSL证书以启用HTTPS协议,保证数据传输的安全性。 4. 监控和日志: - 监控系统:搭建监控系统,监控项目的运行状态、性能指标等,及时发现并解决问题。 - 日志管理:配置日志记录,将项目的日志信息输出到集中式日志管理平台,方便排查问题和分析。 5. 自动化部署和持续集成: - 使用自动化部署工具(如JenkinsGitLab CI/CD)实现自动化部署流程,减少手动操作的错误和时间成本。 - 实施持续集成和持续交付策略,通过自动化测试、代码检查等手段确保代码质量,并快速将新功能交付给用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值