位置: 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

  • 雷柏无线键盘如何连接呢(雷柏无线键盘如何连接)

    雷柏无线键盘如何连接呢(雷柏无线键盘如何连接)

  • 戴尔笔记本的重启快捷键(戴尔笔记本的重装键在哪)

    戴尔笔记本的重启快捷键(戴尔笔记本的重装键在哪)

  • 苹果7怎么开热点(苹果怎么开热点给别人用流量)

    苹果7怎么开热点(苹果怎么开热点给别人用流量)

  • 外部组件发生异常(外部组件发生异常怎么解决c#调用labview)

    外部组件发生异常(外部组件发生异常怎么解决c#调用labview)

  • 华为手机时间日期怎么设置(华为手机时间日历显示在桌面怎么设置?)

    华为手机时间日期怎么设置(华为手机时间日历显示在桌面怎么设置?)

  • 充电器红灯绿灯一起亮怎么修(充电器红灯绿灯显示含义)

    充电器红灯绿灯一起亮怎么修(充电器红灯绿灯显示含义)

  • 文档一般用什么字体与大小(文档一般用什么字号)

    文档一般用什么字体与大小(文档一般用什么字号)

  • 拼多多好友聊天在哪(拼多多好友聊天记录别人能看见吗)

    拼多多好友聊天在哪(拼多多好友聊天记录别人能看见吗)

  • b站下载视频导出没有声音(b站下载视频导入电脑)

    b站下载视频导出没有声音(b站下载视频导入电脑)

  • 储存器是用来储存什么的(储存器是用来储存程序和什么的)

    储存器是用来储存什么的(储存器是用来储存程序和什么的)

  • 云储存在哪里(苹果手机云储存在哪里)

    云储存在哪里(苹果手机云储存在哪里)

  • 怎么复制表格保持原有格式(怎么复制表格保持原有公式)

    怎么复制表格保持原有格式(怎么复制表格保持原有公式)

  • vivo手机照片大小设置(vivo手机照片大小怎么调整)

    vivo手机照片大小设置(vivo手机照片大小怎么调整)

  • 显卡怎么检查是否坏了(显卡怎么检查是否损坏)

    显卡怎么检查是否坏了(显卡怎么检查是否损坏)

  • 广角镜头是什么意思(广角镜头是什么样子的)

    广角镜头是什么意思(广角镜头是什么样子的)

  • 滴滴快车能打往返的么(滴滴可以打单子吗)

    滴滴快车能打往返的么(滴滴可以打单子吗)

  • 拼多实名认证步骤(拼多实名认证步骤图)

    拼多实名认证步骤(拼多实名认证步骤图)

  • 饿了吗在哪给骑手好评(饿了么怎么@骑士)

    饿了吗在哪给骑手好评(饿了么怎么@骑士)

  • win10适配器wlan不见了(win10 wifi适配器)

    win10适配器wlan不见了(win10 wifi适配器)

  • oppo reno2支持5g吗(reno2z支持5g)

    oppo reno2支持5g吗(reno2z支持5g)

  • 英雄联盟中符文怎么设置?(英雄联盟符文推荐怎么不弹出来)

    英雄联盟中符文怎么设置?(英雄联盟符文推荐怎么不弹出来)

  • 双栏Latex模板插入多个图片的各种排布(latex双栏图片)

    双栏Latex模板插入多个图片的各种排布(latex双栏图片)

  • 像巨大指纹一样的Bavljenac岛,克罗地亚 (© Julien Duval/Amazing Aerial Agency)(像指纹一样的图形)

    像巨大指纹一样的Bavljenac岛,克罗地亚 (© Julien Duval/Amazing Aerial Agency)(像指纹一样的图形)

  • vue项目实战-电商后台管理系统(vue实战开发项目视频)

    vue项目实战-电商后台管理系统(vue实战开发项目视频)

  • SpringBoot整合调用微信模板方法实现微信公众号消息通知推送,Java实现微信公众号给关注用户推送自定义消息通知(手把手从0到1)(springboot整合ssm)

    SpringBoot整合调用微信模板方法实现微信公众号消息通知推送,Java实现微信公众号给关注用户推送自定义消息通知(手把手从0到1)(springboot整合ssm)

  • 12366纳税服务平台官网
  • 广交会展务
  • 什么公司可以核算成本
  • 自产产品用于职工福利会计处理
  • 增值税多提了怎么处理
  • 低值易耗品包括哪些东西和产品
  • 新办商贸企业是国企吗
  • 社会团体财政票据管理制度
  • 应交税费负数调整
  • 哪些固定资产不需要计提折旧
  • 外经证的项目范围
  • 以前年度漏记一笔短期借款但本金利息支出记账了
  • 企业所得税研发费用100%扣除的有哪些企业
  • 写支票人民币大写有角需要写整吗
  • 固定资产投资增长意味着什么
  • 公司注销后股东承担责任的法律规定
  • 负债清偿损益明细表可以0报么
  • 木制手链品种
  • 诊所免税政策
  • Win10宽带无法连接
  • 代扣的工会会费怎么做账
  • linux查关键字
  • SetPoint.exe - SetPoint是什么进程 有什么用
  • 交易性金融资产的入账价值
  • 工程竣工结算和决算的区别
  • 会计账簿登记错误怎么办
  • 克雷格格林
  • jquery 滚动条
  • php模拟post提交
  • php常用array函数
  • /t python
  • jquery 兄弟选择器
  • XF86Setup命令 设置XFee86
  • topas命令详解
  • 事业单位无形资产折旧是当月还是下月
  • 研发支出是资产类会计科目吗
  • 公司捐款怎样抵扣
  • 银行收到几分钱怎么做账
  • sqlserver存储过程声明变量
  • 从农业生产者购进农产品
  • 小规模纳税人要报个人所得税吗
  • 改签机票要收费
  • 资产负债表跟利润表勾稽关系公式
  • 销售公司的主营业务成本怎么算
  • 补发以前年度工资怎么做账
  • 住房补贴需要交个税吗
  • 外贸出口企业申报年月怎么填
  • 建安工程预缴税额怎么算
  • 润滑油消费税征收环节税屋
  • 业务招待费 纳税调增
  • 三年期定期存款利率怎么算
  • 预付加油款收到发票怎么处理
  • 应收票据背书支付是什么
  • 工会经费计提按照应发工资还是实发工资
  • 公司新产品研发上市的意义和价值
  • 银行流水账单怎么删
  • 营改增后被挂靠的企业如何做账?
  • xp系统运行怎么打开
  • windows隐藏administrator
  • linux计划任务怎么写
  • linux中使用grep命令显示包含特殊字符的行
  • windows怎么拨号
  • xwizard.exe是什么
  • window10如何解除密码
  • linux 常见
  • win8怎么开启蓝牙
  • cocos-2dx
  • 用jQuery实现可输入多选下拉组合框实例代码
  • 金庸笔下十大最受欢迎人物
  • Node.js中的全局对象有
  • 批处理自动登录有密码的程序
  • shell脚本 su
  • jquery 滑动显示
  • gridlayout动态添加view
  • android 打包
  • 税务师事务所行政登记表怎么办理
  • 税务稽查为什么不问证人
  • 辽宁省大连市国家运动员
  • 小微企业印花税减免政策2024
  • 有限公司怎么交五险
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设