位置: IT常识 - 正文

项目部署,一点也不难!(项目部署计划)

编辑:rootadmin
项目部署,一点也不难!

目录

一、部署前准备

(一)前端多环境准备

(二)后端多环境准备

二、项目部署

(一)原始部署

1、前端部署

2、前端部署测试

3、后端部署

(二)宝塔 Linux 部署

1、前端部署

2、后端部署

(三)Docker部署

三、绑定域名


推荐整理分享项目部署,一点也不难!(项目部署计划),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:项目部署,一点一点落实,项目部署步骤,项目部署步骤,一般项目部署在哪里,zheng项目部署,项目部署,一点一点落实,项目部署是什么,项目部署什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

        作为程序员,打代码是远远不够的,还要对项目进行部署,也就是上线。将本地开发好的项目部署在远程服务器上,使得任何机器都可以通过我们远程服务器的公网ip或者域名加上端口号访问到我们项目。本篇博客将详细讲解不同的项目部署方法,看完这篇文章,你一定会有所收获!

首先项目部署分一下几个步骤:

环境搭建:以springboot项目为例,需要将项目打成jar包,想要让jar包在服务器跑起来的话需要搭建环境,也就是jdk环境。tomcat不要安装,springboot自带。

数据库部署:在本地开发时,我们本地代码里的数据库连接的是本机的数据库且为localhost,这个项目只能访问自己电脑,只有自己能够访问;但如果项目部署到远程服务器上时,要想访问到数据库,应该先部署数据库,至于数据库连接就不能是本地数据库了,这里我部署的是云数据库。

以上方法实现后就可以把项目的jar包上传到服务器上执行java项目即可。

一、部署前准备

部署前的准备就不详细讲解了,本文主要讲解项目部署的方法!

(一)前端多环境准备

请求地址

开发环境:localhost:8080

线上环境:userManager-backend.code-nav.cn

启动方式

开发环境:npm run start(本地启动,监听端口,自动更新)

线上环境:npm run build(项目构建打包,可以使用server工具启动:npm i-g serve)

不同项目(框架)都有不同的配置文件,本次项目使用的是umi框架,其配置文件是config,可以在配置文件后添加对应环境名称后缀来区分开发环境和生产环境。

项目配置

开发环境:config-dev.ts

生产环境:config-prod.ts

公共配置:config.ts 不带后缀

(二)后端多环境准备

本次项目为springboot项目,springboot项目是通过application.yaml添加不同后缀名来区分配置文件

可以通过项目启动时传入环境变量:

java -jar .\user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

后端主要是更改:

依赖的环境地址

数据库地址

缓存地址

消息队列地址

项目端口号

服务器配置 

后端搭建好后,我们可以来测试一下是否可以运行项目,通过mvn打包:

在target内找到打包的项目,在该路径下的控制台内输入:

java -jar./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

到这里,就可以看到后端代码是可以显示的啦!

二、项目部署

前后端准备好后,我们就开始最后的部署吧!!!

本次部署使用的服务器为linux服务器,建议是CentOS 8+ 或者7.6以上版本

(一)原始部署

所有环境都是自己部署!!

1、前端部署

使用web服务器:Nginx、Apache、tomcat(本次使用的为Nginx服务器)

安装Nginx服务器:

用系统自带的软件包管理器快速安装,比如 centos 的 yum

到官网安装

#下载Nginx安装包curl -o nginx-1.21.6.tar.gz http://nginx.org/download/nginx-1.21.6.tar.gz#解压tar -zxvf nginx-1.21.6.tar.gz#跳转至解压后端Nginx包里下载相关包yum install pcre pcre-devel -yyum install openssl openssl-devel -y#设置系统配置参数./configure --with-http_ssl_module --with-http_v2_module --with-stream#开始编译make#安装make install#加入环境变量ls /usr/local/nginx/sbin/nginxvim /etc/profile#在最后一行添加export PATH=$PATH:/usr/local/nginx/sbin#使文件生效source /etc/profile#最后输入命令nginx即可nginx#查看启动情况netstat -ntlp

 

2、前端部署测试

把Nginx搭建好后,我们就可以将前端项目放进服务器然后运行啦!!!

将打包好的项目传入服务器(在根目录下执行)

unzip dist.zip -d user-center-front#将dist内的文件全部移到user-center-front目录下 mv * ../

修改Nginx的配置文件:nginx.conf

将开启的用户设为root用户

将项目地址填入root后面

执行项目

nginx -s reload

在自己的浏览器输入自己服务器的IP地址即可进入,但会发现以下问题

这是因为修改的nginx.conf是没有执行成功的,运行nginx时,使用的是默认的nginx.conf配置文件,路径是不一样的,所以得修改默认路径下的nginx.conf!

项目成功启动啦!!!

3、后端部署项目部署,一点也不难!(项目部署计划)

配置java环境:jdk、maven

#安装jdkyum install -y java-1.8.0-openjdk*#安下载maven包curl -o apache-maven-3.8.5-bin.tar.gz https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz#解压tar -zxvf apache-maven-3.8.5-bin.tar.gz #进入解压后的maven文件跳转到bin文件可以看到该文件内的mvn执行文件#复制其地址/root/env/apache-maven-3.8.5/bin#配置环境变量vim /etc/profile#在最后一行的路径后面添加 : + 路径export PATH=$PATH:/usr/local/nginx/sbin:/root/env/apache-maven-3.8.5/bin#刷新环境source /etc/profile#测试mvn是否搭建成功mvn -vApache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)Maven home: /root/env/apache-maven-3.8.5#将后端项目传入服务器内#将项目打包构建,并跳过测试mvn package -DskipTests#打包完成后在target文件下可以看到user-center-backend-0.0.1-SNAPSHOT.jar#在当前目录下执行该jar包java -jar user-center-backend-0.0.1-SNAPSHOT.jar --spring.profile.active=prod#注意这样运行的话窗口会卡死,所以应该使其在后台运行nohup java -jar user-center-backend-0.0.1-SNAPSHOT.jar --spring.profile.active=prod &#执行后会看到运行该项目的端口号,然后按回车即可

 

到此,我们的原始部署已经完成了!!!

(二)宝塔 Linux 部署

如果是腾讯云的轻量应用服务器的话是自带宝塔Linux的,我用的是华为云的服务器,所以得从官网下载并配置。官网地址(宝塔面板下载,免费全能的服务器运维软件)

#Centos安装脚本yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec#堡塔云控平台安装脚本curl http://download.bt.cn/coll_free/install.sh|bash

安装完成后会显示控制面板的地址和账户密码,首先要先添加服务器的安全组,设置入栈规则允许访问该地址,然后在登录宝塔修改密码!!

进来后你会发现这简直就是新天地啊,全都是可视化界面了,想装什么就去搜一键安装!!!

nginx安装:

tomcat安装:

1、前端部署

在宝塔的控制页面直接点解网站,创建站点

创建完成之后,如图点击进入其目录

 

删除所有默认文件

将前端打包好的文件直接全部拖入该文件下

然后项目就部署完成啦!!!!太快了

 

2、后端部署

在宝塔控制面板点击文件,新建一个后端文件

点击网站,点击Java项目,添加java项目。项目执行路径一定要注意了!

 

注意,如果提交时报端口重复,大概率是tomcat占用了8080端口,只需要另起一个宝塔页面,在软件商店内搜索tomcat,然后将其关闭即可!

还没有解决的话,可以通过:netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令 :kill -9 PID

启动成功!

启动成功后要去看一下服务器有没有开启8080端口,如果没有的话就要去开启,宝塔内也要开启8080端口!!

 

(三)Docker部署

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

简单的说,docker就是一个容器,可以将项目的环境(比如java、nginx)和项目的代码一起打包成镜像,所有人都可以下载镜像,更加容易分发和移植。在启动项目时就不再需要敲过多命令,而是直接下载镜像,启动镜像即可。相当于软件的安装包!

Docker安装:

官网:Developers - Docker

直接使用宝塔软件商店进行安装

用于指定构建Docker镜像的方法是通过Dockerfile文件来完成的,Dockerfile一般都是去cv下来的,不需要太深入理解。

Dockerfile 编写:

FROM 依赖的基础镜像

WORKDIR 工作目录

COPY 从本机复制文件

RUN 执行命令

CMD / ENTRYPOINT(附加额外参数)指定运行容器时默认执行的命令

#后端DockfileFROM maven:3.5-jdk-8-alpine as builder# Copy local code to the container image.WORKDIR /appCOPY pom.xml .COPY src ./src# Build a release artifact.RUN mvn package -DskipTests# Run the web service on container startup.CMD ["java","-jar","/app/target/user-center-backend-0.0.1-SNAPSHOT.jar","--spring.profiles.active=prod"]#前端的DockfileFROM nginxWORKDIR /usr/share/nginx/html/USER rootCOPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf#./dist 前端构建的代码包COPY ./dist /usr/share/nginx/html/EXPOSE 80CMD ["nginx", "-g", "daemon off;"]

直接在项目的根目录下创建该文件即可

根据 Dockerfile 构建镜像:

添加新文件后需要重新打包并重新上传打包好的项目

# 后端docker build -t user-center-backend:v0.0.1 .# 前端docker build -t user-center-frontend:v0.0.1 .

 

docker run 启动

# 前端docker run -p 80:80 -d user-center-frontend:v0.0.1# 后端docker run -p 8080:8080 user-center-backend:v0.0.1

虚拟化

端口映射:把本机的资源(实际访问地址)和容器内部的资源(应用启动端口)进行关联

目录映射:把本机的端口和容器应用的端口进行关联

三、绑定域名

前端项目访问:

用户输入网址 => 域名解析服务器(把网址解析为 ip 地址 / 交给其他的域名解析服务) => 服务器 =>(防火墙)=> nginx 接收请求,找到对应的文件,返回文件给前端 => 前端加载文件到浏览器中(js、css) => 渲染页面

后端项目访问:用户输入网址 => 域名解析服务器 => 服务器 => nginx 接收请求 => 后端项目(比如 8080端口)

本文链接地址:https://www.jiuchutong.com/zhishi/297534.html 转载请保留说明!

上一篇:clone下来的vue项目出现“An unknown git error occurred”,vue全局挂载axios及配置全局请求和响应拦截,uni-app的全局请求和响应拦截,对请求方法的封装(vue clonedeep)

下一篇:npm ERR! code ERESOLVEnpm ERR! ERESOLVE could not resolve dependency

  • 天天跳绳怎么加入班级(天天跳绳怎么加入俱乐部)

    天天跳绳怎么加入班级(天天跳绳怎么加入俱乐部)

  • 手机内存最大是512G吗(手机内存最大是多大的)

    手机内存最大是512G吗(手机内存最大是多大的)

  • word项目符号在哪里找(word项目符号在哪里)

    word项目符号在哪里找(word项目符号在哪里)

  • qq如何创建聊天群(qq如何建立)

    qq如何创建聊天群(qq如何建立)

  • 正在通话中是挂了吗

    正在通话中是挂了吗

  • 苹果相册图片出现感叹号(苹果相册图片出现感叹号怎么办)

    苹果相册图片出现感叹号(苹果相册图片出现感叹号怎么办)

  • 2张图片怎么合并到1张(2张图片怎么合并到1张a4纸上)

    2张图片怎么合并到1张(2张图片怎么合并到1张a4纸上)

  • 苹果手机儿童模式在哪

    苹果手机儿童模式在哪

  • 淘宝号为什么会被降权(淘宝号为什么会被禁言)

    淘宝号为什么会被降权(淘宝号为什么会被禁言)

  • qq校园扩列为什么一直匹配失败(qq校园扩列为什么突然找不到了)

    qq校园扩列为什么一直匹配失败(qq校园扩列为什么突然找不到了)

  • 苹果a11处理器相当于麒麟多少(苹果a11处理器相当于天机多少)

    苹果a11处理器相当于麒麟多少(苹果a11处理器相当于天机多少)

  • qualcomm snapdragon430是什么处理器(qualcomm snapdragon430)

    qualcomm snapdragon430是什么处理器(qualcomm snapdragon430)

  • b站投币up主能得到什么(b站投币up主能得多少经验)

    b站投币up主能得到什么(b站投币up主能得多少经验)

  • iphone状态栏消失(苹果的状态栏)

    iphone状态栏消失(苹果的状态栏)

  • 华为p40用的是什么操作系统(华为p40用的是什么数据线)

    华为p40用的是什么操作系统(华为p40用的是什么数据线)

  • 手机文档pdf什么意思(手机pdf文档在哪里)

    手机文档pdf什么意思(手机pdf文档在哪里)

  • 华为mate9pro是双扬声器吗(华为mate9pro双系统怎么设置)

    华为mate9pro是双扬声器吗(华为mate9pro双系统怎么设置)

  • 小米一共有几个语音助手(小米一共几个公司)

    小米一共有几个语音助手(小米一共几个公司)

  • wifi6是哪个频段的(wifi6的频率还是5ghz)

    wifi6是哪个频段的(wifi6的频率还是5ghz)

  • x27有nfc功能吗(x27是否支持nfc功能)

    x27有nfc功能吗(x27是否支持nfc功能)

  • 手机qq音乐如何下歌词(手机qq音乐如何播放本地音乐播放器)

    手机qq音乐如何下歌词(手机qq音乐如何播放本地音乐播放器)

  • 小米笔记本休眠怎么激活(小米笔记本休眠后无法开机)

    小米笔记本休眠怎么激活(小米笔记本休眠后无法开机)

  • 苹果x怎么看有没有锁(苹果X怎么看有没有贴膜)

    苹果x怎么看有没有锁(苹果X怎么看有没有贴膜)

  • qq音乐最高多少级(qq音乐最高多少版本)

    qq音乐最高多少级(qq音乐最高多少版本)

  • 苹果官方换屏是原装屏吗(苹果官方换屏是国行吗)

    苹果官方换屏是原装屏吗(苹果官方换屏是国行吗)

  • 如何设置手机时间显示(如何设置手机时间精确到秒)

    如何设置手机时间显示(如何设置手机时间精确到秒)

  • 座机打外地手机前面加什么(座机打外地手机前面加0怎么也不行呢)

    座机打外地手机前面加什么(座机打外地手机前面加0怎么也不行呢)

  • word文档在哪里(oppo手机word文档在哪里)

    word文档在哪里(oppo手机word文档在哪里)

  • 新版Win10中,如何仅修改部分文本大小

    新版Win10中,如何仅修改部分文本大小

  • 宽带连接错误代码:711解决方法(宽带连接错误代码691)

    宽带连接错误代码:711解决方法(宽带连接错误代码691)

  • 收入纳税数据是什么意思
  • 小规模纳税人纳税申报时间
  • 个人所得税申报截止时间
  • 纳税义务发生时间和申报纳税的时间
  • 税盘维护费抵扣
  • 自产农产品增值税申报表填10行吗
  • 购销合同赔偿比例一般多少
  • 土地使用税的免税规定有哪些
  • 现金折扣销售退回的会计分录
  • 社保扣款上月没扣本月如何做会计处理?
  • 向公司一般户的银行借款怎么做账?
  • 分公司所得税怎么交
  • 水电费差价收入计算增值税公式是怎样的?
  • 服务行业也有合伙人吗
  • 发票备注有法律效力吗
  • 标准误和标准差的区别和联系
  • 门诊医保报销流程详细步骤
  • 金蝶软件测试笔试题及答案
  • 楷体_gb2312字体
  • 分配利润给股东怎么做分录
  • 营业外支出所得税前可以扣除吗
  • 一键ghost软件怎么用
  • 苹果11屏幕尺寸长宽
  • 库存商品如何结转生产成本
  • 制作flash动画步骤
  • win11开机后无法操作
  • 失控发票的企业如何处理
  • 子公司接受母公司无偿划转的房屋如何缴纳房产税
  • 冲回以前年度计提的坏账准备
  • 公允价值的利弊
  • cuda运行环境
  • 外币交易是什么意思
  • 移民美国怎样加入医疗保险
  • 会计准则对企业行为的影响分析论文
  • 第二季度企业所得税怎么计提
  • c语言中数组的定义和使用
  • 如何补缴以前年度的税
  • 13个点的普票可以抵税吗
  • 公司向法人借款需要多久还清
  • c语言中数组怎么用
  • 城建税要计入税金及附加吗
  • 增值税申报表填错不影响税额
  • 工程项目成本管理实论
  • 库存现金总分类账
  • 公司能经营烟草公司吗
  • 信用减值损失在贷方表示什么
  • 投资收益会计科目账务处理
  • 银行承兑汇票和贴现的区别
  • 应付账款借方如何重分类会计科目
  • 错账原因有哪些类型
  • 房产税应纳税额计算例题
  • 工人晚上加班的说说心情
  • 对公账户的钱怎么用
  • 对方开票少开几角会计分录
  • 公司控股的子公司 法人能被追加吗
  • 企业应收账款的事前管理包括
  • 会计中的资金
  • jdbc取数据
  • mysql声明全局变量
  • win8如何快速启动
  • centos6.5如何安装
  • dvd-rom drive是什么意思
  • mmc.exe是什么
  • CentOS系统中与时间的相关命令详解
  • giantantispywaremain.exe是什么进程 有什么作用 giantantispywaremain进程查询
  • win10更新后有线网络无法使用
  • ftql
  • bootstrap启动类
  • css命名大全
  • 原生js实现ajax步骤
  • linux什么是二进制文件
  • css div内容自动换行
  • python3 生成器
  • 详解金球奖之争
  • win10 python环境
  • 遮罩层 css
  • a标签跳转本地html页面
  • js判断checkbox是否被选中
  • jquery控制css样式
  • 重庆税务稽查局地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设