[服务器软件] 【Linux服务器】SpringBoot+Vue 前后端分离 微服务项目 打包部署上线全流程

1022 0
Honkers 2025-3-5 21:41:59 | 显示全部楼层 |阅读模式
<p>&#x1f3af;导读&#xff1a;该文档提供了Vue.js前端项目与Java后端项目的打包和部署指南。前端部分介绍了如何通过修改配置文件来进行生产环境构建&#xff0c;并使用Nginx或宝塔面板进行部署。后端部分详细说明了如何调整Maven配置以优化打包过程&#xff0c;以及如何通过命令行或宝塔面板部署Spring Boot应用。文档还包含了示例代码和步骤截图&#xff0c;便于开发者理解和操作。</p>

<p></p>

<p></p>
<h2>前端打包部署</h2>
<p>前端项目为vue项目&#xff0c;使用vue admin template作为后台管理模板进行开发。</p>
<h3>前端打包</h3>
<h4>了解开发环境、生产环境&#xff0c;修改生产环境的配置</h4>
<p>在开发的时候&#xff0c;往往使用本地电脑进行开发。但是项目上线的时候&#xff0c;需要部署到云服务器中。开发环境和生成环境的部门配置往往有所差异&#xff0c;例如ip不同。因此项目中使用两个配置文件来分别存放开发环境和生产环境&#xff0c;方便环境隔离和切换。</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/4bbbbbe0d2dee950601f5a74e9415035.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVfwZBh1-1682389526941)(assets/image-20230424222734600.png#pic_center)]" />
</p>
<p>修改生产环境配置文件。</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/690cd72caf3f1897078ebc319d02b99d.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9ZdVfXc-1682389526941)(assets/image-20230424223046456.png#pic_center)]" />
</p>
<p>修改配置文件</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/5a156ed760c5b584dbdc8ee36aba6b6c.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rp3bajg-1682389526942)(assets/image-20230424223744825.png#pic_center)]" />
</p>
<h4>运行命令进行打包</h4>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/38a6ecfdf3ca169c862bdbdda5447d6e.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OWEkfjTP-1682389526942)(assets/image-20230424223455409.png#pic_center)]" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/535b7289f32574c1f76c2dc76cddca7c.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WmDmXsr6-1682389526942)(assets/image-20230424223555260.png#pic_center)]" />
</p>
<p>打包成功之后得到dist文件夹</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/44ce90b28dde39d3bd91f0382a6f2b6b.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MSspBsLc-1682389526943)(assets/image-20230424223635291.png#pic_center)]" />
</p>
<h3>前端部署</h3>
<p>使用下面两种部署方式都可以&#xff0c;如果linux服务器已经安装了宝塔&#xff0c;推荐宝塔&#xff0c;因为方便高效。</p>
<h4>nginx部署</h4>
<p>先将打包后的文件上传到云服务器的nginx的html目录下</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/174103021b62098c1413dacccb83fc0f.png#pic_center" alt="[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hrZUX5ao-1682389526943)(assets/image-20230424230414183.png#pic_center)]" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/176bc6e3cf5cb2e883e301445c6ed0eb.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>修改配置文件<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/e614c6cd3e3db1ea1837b2e13ab88209.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/68a7b3aa50a3826f2d0b207244bdbfac.png#pic_center" alt="在这里插入图片描述" />
</p>
  1. server {
  2.         # 前端项目要部署到什么端口
  3.         listen       8889;
  4.         server_name  localhost;
  5.         location / {
  6.             # 告诉nginx&#xff0c;前端打包好的文件在哪里
  7.             root   html/sssFront;
  8.             # index配置首页文件
  9.             index  index.html index.htm;
  10.         }
  11.         #这里解决跨域问题&#xff0c;后端地址及端口号
  12.                 location /api/ {
  13.                     # ip和端口 根据后端服务器来确定&#xff0c;因为我的后端服务也是部署在这台服务器中&#xff0c;所以可以写127.0.0.1
  14.                         proxy_pass http://127.0.0.1:6001$request_uri;
  15.                         proxy_redirect    off;
  16.                         proxy_set_header  Host $host;
  17.                         proxy_set_header  X-real-ip $remote_addr;
  18.                         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  19.                 }
  20.         }
复制代码

<p>修改完配置文件之后&#xff0c;重启或者reload nginx即可。前端项目部署成功&#xff0c;服务器开放端口后&#xff0c;使用ip:8889访问即可。</p>
<h4>宝塔部署</h4>
<h5>宝塔安装</h5>
<p>使用宝塔可以非常方便地部署前端、后端项目&#xff0c;但是有一个前提条件&#xff1a;你的服务器已经安装了宝塔&#xff0c;或者你的服务器非常干净&#xff0c;什么环境都没有&#xff0c;那就可以安装宝塔。</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/cf28a903302feda45be541b142260d36.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>想要安装宝塔非常简单&#xff0c;直接命令行运行下面的命令&#xff0c;途中有y/n&#xff0c;直接选择y即可。</p>
  1. yum install -y wget &amp;&amp; wget -O install.sh https://download.bt.cn/install/install_6.0.sh &amp;&amp; sh install.sh ed8484bec
复制代码

<p>安装成功之后记得将宝塔的账号密码信息存储起来。</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/466a652659781e6785c02e48bd1d54c0.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>云服务器开放宝塔相应端口&#xff08;本文的端口是19565&#xff09;&#xff0c;即可使用本地电脑访问宝塔面板&#xff08;访问地址为上图的外网面板地址&#xff09;&#xff0c;输入账号密码即可进入宝塔面板</p>
<h5>宝塔中安装Nginx</h5>
<p>想要部署前端&#xff0c;只需要安装一个nginx即可</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/359ca56b5ee16f1c08a13fac9dc50f72.png#pic_center" alt="在这里插入图片描述" />
</p>
<h5>网站部署</h5>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/1ac9e21bd050742cd163ad354f82d87d.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/7b3daf9d02b71d0c52de4ecc80f79db3.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/97c3a5ca534062521f8e6541856c8dbf.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>勾选文件&#xff0c;右键删除</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/78d5a0c0fd9374631130f35bc9425b1f.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/d96dc03c28b10b57bd4d388e46779ada.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>直接将本地打包的文件拖进来上传即可。</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/e6ee55cbea329b81919347081b1b26ac.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/7391553ca04459267203470c8d382522.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>文件上传之后&#xff0c;如果自己输入的域名是假域名&#xff0c;需要配置云服务的ip<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/5861102160f36cd9822fb4f716401668.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/4bc0fd5f3bf6021726abaff274663183.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>云服务器开放8002端口&#xff0c;即可访问前端项目</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/13fa3026918346a2e441df8731449b67.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>到这里&#xff0c;前端就部署成功啦&#xff0c;直接使用域名:端口或者ip:端口即可访问网站</p>
<h5>修改网站对应的nginx配置</h5>
<p>
<img src="https://i-blog.csdnimg.cn/direct/15a106a8c7494121a6b27244d5d2da93.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/direct/d1d7f98bfd6f4b9483a6a032b2106d96.png#pic_center" alt="在这里插入图片描述"  />
</p>
<p>如果刷新页面报错404&#xff0c;添加这行配置</p>
<p>
<img src="https://i-blog.csdnimg.cn/direct/f5bd9332901946438ccfea99e45a43fc.png#pic_center" alt="在这里插入图片描述"  />
</p>
  1. try_files $uri $uri/ /index.html;
复制代码

<p>修改配置文件之后&#xff0c;重启网站<br />
<img src="https://i-blog.csdnimg.cn/direct/3e5acdbfdb0f4a9faeb779fef44cf1a2.png#pic_center" alt="在这里插入图片描述"  />
</p>
<h2>后端打包部署</h2>
<h3>后端打包</h3>
<h4>修改生产环境配置</h4>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/59145f4866a7941ac8347c221b1e657a.png#pic_center" alt="在这里插入图片描述" />
<br /> 注意&#xff01;&#xff01;&#xff01;<br /> 注意&#xff01;&#xff01;&#xff01;<br /> 注意&#xff01;&#xff01;&#xff01;</p>
<p>yml的配置缩进一定要正确&#xff0c;不然可能找半天错误都不知道是哪里的问题&#xff0c;别问我怎么知道的/(ㄒoㄒ)/~~</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/8a0daae09c21bd988f84514cdd72051d.png#pic_center" alt="在这里插入图片描述" />
</p>
<h4>pom文件修改</h4>
<h5>父工程的pom文件</h5>
<p>在父工程的pom文件中添加打包配置</p>
  1. &lt;packaging&gt;pom&lt;/packaging&gt;
  2. &lt;build&gt;
  3.     &lt;plugins&gt;
  4.         &lt;plugin&gt;
  5.             &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
  6.             &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
  7.             &lt;version&gt;3.1&lt;/version&gt;
  8.             &lt;configuration&gt;
  9.                 &lt;source&gt;1.8&lt;/source&gt;
  10.                 &lt;target&gt;1.8&lt;/target&gt;
  11.             &lt;/configuration&gt;
  12.         &lt;/plugin&gt;
  13.         &lt;plugin&gt;
  14.             &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
  15.             &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
  16.             &lt;version&gt;2.19.1&lt;/version&gt;
  17.             &lt;configuration&gt;
  18.                 &lt;!-- 默认关掉单元测试&#xff0c;不用手动关闭了 --&gt;
  19.                 &lt;skipTests&gt;true&lt;/skipTests&gt;
  20.             &lt;/configuration&gt;
  21.         &lt;/plugin&gt;
  22.     &lt;/plugins&gt;
  23. &lt;/build&gt;
复制代码

<h5>子工程的pom文件</h5>
<p>修改子工程的packaging方式为jar包</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/a9e6adf405a1b28dec851345aa2a2001.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>如果不添加下面的配置&#xff0c;打包的只是源码包&#xff0c;无法直接运行为SpringBoot程序。注意&#xff0c;需要指明mainClass&#xff0c;这样运行jar包的时候&#xff0c;才可以找到要启动的SpringBootApplication</p>
  1. &lt;packaging&gt;jar&lt;/packaging&gt;
  2. &lt;build&gt;
  3.     &lt;plugins&gt;
  4.         &lt;plugin&gt;
  5.             &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
  6.             &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
  7.             &lt;configuration&gt;
  8.                 &lt;!-- 指定启动类 --&gt;
  9.                 &lt;mainClass&gt;com.dam.ThirdPartyApplication&lt;/mainClass&gt;
  10.                 &lt;layout&gt;ZIP&lt;/layout&gt;
  11.             &lt;/configuration&gt;
  12.             &lt;executions&gt;
  13.                 &lt;execution&gt;
  14.                     &lt;goals&gt;
  15.                         &lt;!-- 将依赖到的包都放进去 --&gt;
  16.                         &lt;goal&gt;repackage&lt;/goal&gt;
  17.                     &lt;/goals&gt;
  18.                 &lt;/execution&gt;
  19.             &lt;/executions&gt;
  20.         &lt;/plugin&gt;
  21.     &lt;/plugins&gt;
  22. &lt;/build&gt;
复制代码

<h4>打包</h4>
<p>可以使用package或者install来打包</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/7091f2bcce829f7aa48c57d85cd6aa37.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>点击父工程的package即可为所有子工程打包&#xff0c;打包之后的jar包在子工程的target下面找到</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/18c918f5672eed573188e2b749289ead.png#pic_center" alt="在这里插入图片描述" />
</p>
<h3>后端部署</h3>
<h4>普通部署</h4>
<h5>运行jar包</h5>
<p>有了jar包之后&#xff0c;直接在服务器里面运行jar包即可&#xff0c;首先将打包好的jar包上传到服务器中</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/df9f34fa4eb6933a0ab9bd5d6e9d4083.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>因为要运行的服务比较多&#xff0c;我这里使用批处理文件&#xff0c;run.sh。直接创建一个文本文件&#xff0c;将命令输入进去保存&#xff0c;最后命名为run.sh</p>
  1. nohup java -Xmx1024M -Xms256M -jar shift-scheduling-calculate-service-0.0.1-SNAPSHOT.jar --server.port&#61;6004 --spring.profiles.active&#61;prod &amp;
  2. nohup java -Xmx256M -Xms256M -jar sss-enterprise-0.0.1-SNAPSHOT.jar --server.port&#61;6002 --spring.profiles.active&#61;prod &amp;
  3. nohup java -Xmx256M -Xms256M -jar sss-gateway-0.0.1-SNAPSHOT.jar --server.port&#61;6001 --spring.profiles.active&#61;prod &amp;
  4. nohup java -Xmx256M -Xms256M -jar sss-system-server-0.0.1-SNAPSHOT.jar --server.port&#61;6000 --spring.profiles.active&#61;prod &amp;
  5. nohup java -Xmx256M -Xms256M -jar sss-third-party-0.0.1-SNAPSHOT.jar --server.port&#61;8160 --spring.profiles.active&#61;prod
复制代码

<p>说明&#xff1a;</p>
<ol><li> <p><strong>nohup</strong> 使用nohup可以让项目在后台运行&#xff0c;不写nohup可以看到jar包运行的输出&#xff0c;但是一旦关闭命令行窗口&#xff0c;程序就会停止运行</p> </li><li> <p><strong>-Xmx</strong> Java Heap最大值&#xff0c;默认值为物理内存的1/4&#xff0c;应该视物理内存大小及计算机内其他内存开销进行设置</p> </li><li> <p><strong>-Xms</strong> Java Heap初始值&#xff0c;也是最小值</p> </li><li> <p><strong>-Xmn</strong> Java Heap Young区大小&#xff0c;不熟悉最好保留默认值&#xff08;我就是不熟悉所以不设置o(╥﹏╥)o&#xff09;</p> </li><li> <p><strong>-Xss</strong> 每个线程的stack大小&#xff0c;不熟悉最好保留默认值</p> </li><li> <p><strong>–server.port&#61;6004</strong> 指定jar运行的端口号&#xff0c;也可以不指定&#xff0c;因为配置文件也写了&#xff0c;不过想指定其他的可以在这里指定</p> </li><li> <p><strong>–spring.profiles.active&#61;prod</strong> 指定运行jar使用的配置&#xff0c;也可以&#61;dev、&#61;test&#xff0c;看你需要用哪套进入</p> </li></ol>
<p>最后进入jar包所在目录执行run.sh文件即可成功部署后端</p>
<p>给run.sh赋予执行权限</p>
  1. chmod u&#43;x *.sh
复制代码

<p>执行run.sh</p>
  1. ./run.sh
复制代码

<h5>停止jar包运行</h5>
<p>查看每个jar包的pid</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/d4d833de606945872b7cc948c170dc09.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>使用命令杀掉进程即可</p>
  1. kill -9 jar对应的pid
复制代码

<h4>宝塔部署</h4>
<h5>软件安装</h5>
<p>如果服务器没有相应的开发环境&#xff0c;使用宝塔就直接爽翻了&#xff0c;我基本是使用宝塔&#43;Docker就可以搞定项目所需的运行环境</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/d390d0729127068166007a891ead3f0d.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>注意&#xff0c;如果服务器已经安装报了jdk&#xff0c;可以不安装tomcat<br /> 这里的tomcat就是一个工具软件&#xff08;安装tomcat会自动帮我们在服务器中安装并配置好java环境&#xff09;&#xff0c;安装成功之后&#xff0c;直接停止tomcat的运行&#xff0c;SpringBoot自动Tomcat&#xff0c;用不上这个。</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/3767c77ab5d2b96c9c903eea6edd26e3.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/7d5419961be579d14713dbebff5bf72b.png#pic_center" alt="在这里插入图片描述" />
</p>
<h5>jar包部署</h5>
<p>将jar包都上传到宝塔中</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/045cb44c4ec34e42de024dbaea68d46f.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/096394973744f4b98dc67a5022636845.png#pic_center" alt="在这里插入图片描述" />
<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/347412af537a6289f2ac92d91664f454.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>点击提交即部署成功&#xff0c;<br />
<img src="https://i-blog.csdnimg.cn/blog_migrate/0500d3af99e0e1cc4d4bf45ac730a900.png#pic_center" alt="在这里插入图片描述" />
</p>
<p>最后记得在宝塔和服务器开放端口</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/aa297fb6c0a1a359bdcb22e112c8d284.png#pic_center" alt="在这里插入图片描述" />
</p>
<h5>停止jar包执行</h5>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/56ddcbe69aa5fc25fe8b466ec8c3b246.png#pic_center" alt="在这里插入图片描述" />
</p>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行