参考至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容器中运行。
企业中的部署一般由运维来做,而且运维一般用自动化做。但是自己学会部署项目至少是有利于我们自己练习项目。我在之前拉取其他人的项目来练习后端代码的时候,卡在项目部署浪费了很多时间,实习等办公电脑的时候,看了这期视频,终于搞明白项目部署大概是怎么一回事。很感谢羊哥的这期视频。
                  
                  
                  
                  
                            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					1143
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            