前后端分离的项目部署保姆级教程

参考至b站羊哥:

【项目下载、运行、配置、构建、打包、部署:全步骤实战演示。前后端分离式项目实战部署(含nginx、tomcat部署配置)视频教程】 https://www.bilibili.com/video/BV1uK411p7Bp/?share_source=copy_web&vd_source=898fc10d957371201545f4c7af7de390

后端部署的时候可以jar包,war包二选一。

上传源码到服务器

压缩源码文件夹,再上传到服务器解压。

不直接上传文件夹的原因是:隐藏文件可能上传不全。

部署前端

下载依赖

通过命令npm install下载依赖,若报错,换用 yarn install 命令。

注意使用国内镜像源。

打包

npm run build:prod,运行结束后会生成一个 dist 文件夹。

dist文件夹就是打包成品。

部署(nginx)

配置nginx

修改nginx的配置文件

1.改动root后的路径,将其换成dist的路径

2.放开 user nobody,修改nobody为 root

建议新建一个nginx用户,不要直接用root

启动nginx

发现前端已经部署完成。

部署后端

修改配置文件

1.修改logback.xml日志配置

修改日志生成地址,编码方式等。

2.修改application.yml项目配置

修改启动端口,redis配置,token加密规则等。

3.修改application-druid.yml数据源配置

注意:MySQL的编码方式要选utf8mb4,数据库如果不存在需要创建好

 打包

jar包

命令:mvn packge,默认会去下载依赖。

打包完成之后会在当前目录下生成一个target文件,里面有jar包。由于每次 clean 会删掉target目录,所以需要把jar包拷贝出来。

war包

打war包需要修改pom文件

1.jar改成war

2.排除掉springboot自带的tomcat以便能够部署到外部tomcat。

增加红框内配置,其中scope设置为provide,表示发布时去除。

3.改造启动类

 在原有的启动类同级目录中增设一个启动类。

 打包命令和打jar包的一样。生成war包的位置也在target目录下。

war包不能直接允许,要放到容器中。

部署

jar包

执行命令nohup java -jar ruoyi.jar &

war包

如上所说,war包要放进像tomcat这样的容器中运行。

1.把war包拷贝进tomcat的webapp目录下

会自动解压war包

2.修改tomcat的server.xml文件

在Host标签中增加一行配置,完整内容是

<Context path="/" docBase="/usr/local/tomcat/apache-tomcat-8.5.55/webapps/ruoyi" reloadab ="false"></Contxt>

这行配置的目的是访问根目录时就可以访问到若依,而不是访问到tomcat主页。

关联前后端

到这里,前后端都已经部署完毕,但是它们还没有产生关联,前后端无法交换数据。

需要用nginx来关联它们,修改nginx配置文件。

前端发送请求时会有一个转发路径,后面才是后端接口。

1.配置代理。 

最后一行是自己加的。 出现502可能是端口被占用,修改端口号即可。

集群

1.修改nginx配置文件,增加红色部分

2.修改代理配置

 颜色和upstream处起的名字要一致

测试集群

可以通过日志测试,使用tail命令实时监测日志。

tail -f sys-info.log。

不停发送校验验证码的请求,会发现请求会路由到两个服务请。 集群部署成功。

补充内容:jar包和war包

参考链接:https://www.zhihu.com/question/602311514/answer/3101891932

定义

  • jar 文件是一种用于打包Java类、资源文件和元数据的标准格式。JAR文件可以包含Java类文件、图像、HTML文件、声音文件、属性文件等各种资源文件。JAR文件通常用于打包Java应用程序,它可以将所有需要的类和资源打包到一个文件中,并通过JVM来运行。
  • war 代表 Web 应用程序存档或 Web 应用程序资源。这些归档文件具有.war扩展名。用于打包可部署在任何 Servlet/JSP 容器上的 Web 应用程序。

区别

打包方式

  • JAR文件是将所有的资源文件和Java类文件打包成一个JAR文件

  • WAR文件则是将Web应用程序的所有资源文件和Java类文件打包成一个WAR文件。 

 部署方式

  • JAR文件可以在任何Java环境中运行,只要JVM能够识别并运行它。它可以通过java -jar命令来启动应用程序,也可以通过将JAR文件放置在Web服务器的类路径下来部署应用程序。但是,由于JAR文件不包含Web应用程序所需的Web.xml文件,所以无法直接在Web容器中部署。
  • WAR文件则是专门用于Web应用程序部署的,它可以直接部署在Web容器中。Web容器可以根据Web.xml文件中的配置信息来部署和管理Web应用程序。WAR文件可以通过将WAR文件复制到Web容器的Webapps目录下来部署Web应用程序。Web容器会在启动时自动解压WAR文件,并将其中的资源文件和Java类文件放置在适当的目录下。

使用场景

  • JAR文件通常用于打包独立的Java应用程序,它可以在任何Java环境中运行,而不需要任何其他的依赖关系。它适用于开发独立应用程序,如命令行工具、桌面应用程序等。由于JAR文件不包含Web.xml文件和其他Web相关的配置文件,所以不适合用于Web应用程序的部署。
  • WAR文件则是专门用于Web应用程序的打包和部署的。它可以包含Web应用程序的所有资源文件和Java类文件,并提供了一种标准化的部署方式。WAR文件适用于开发Web应用程序,如基于Spring Boot的Web应用程序、基于Servlet的Web应用程序等。它可以在Web容器中部署,Web容器可以根据WAR文件中的配置信息来管理和部署Web应用程序。

注意:JAR文件不支持JSP页面,因为JSP页面需要在Web容器中运行。 

企业中的部署一般由运维来做,而且运维一般用自动化做。但是自己学会部署项目至少是有利于我们自己练习项目。我在之前拉取其他人的项目来练习后端代码的时候,卡在项目部署浪费了很多时间,实习等办公电脑的时候,看了这期视频,终于搞明白项目部署大概是怎么一回事。很感谢羊哥的这期视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值