当前位置:论坛首页 > Linux面板 > 讨论

部署ssm与vue的前后端分离项目

发表在 Linux面板2020-9-9 10:40 [复制链接] 3 6199

9.6,博客网站完工,前后花了大概半个月。

项目不大,前端用的vue,后端是ssm。

9.6晚买了三年的腾讯云服务器,花了200+。又买了个域名,50+。

不会linux,只能用宝塔面板部署,踩了两天的坑。今天9.8,网站上线。

下面是部署的基本步骤:

1. 安装xshell后连接到远程服务器,再下载宝塔面板可视化管理服务器。下载宝塔面板就是把官网的对应操作系统的命令在xshell中输入,安装好后会返回宝塔面板的远程地址
安装宝塔面板.png

2. 在宝塔面板中下载宝塔ssh终端,linux工具箱,java项目一键部署,Fail2ban防爆破,Nginx,MySQL,Nginx防火墙,宝塔静态文件加速,Tomcat

宝塔软件.png

一开始使用java项目一键部署,后来换成了java项目管理器

3. 在java项目管理器中添加项目
java项目管理器添加项目.png

   项目类型一般推荐选择独立环境,项目版本选择下载对应tomcat的版本,项目域名选择你的域名,项目路径自己先在wwwroot目录下创建再选择或者默认也行,项目端口一定要先在安全组中放行,不要忘了腾讯云服务器中也要放行。

   4. 创建好项目之后进入对应的项目目录,把打包好的项目上传上去。ssm项目上传war包,vue项目上传dist文件夹,上传后并解压。

   5. 在java项目管理器的项目管理中选择映射操作

   映射成功后就可以通过域名访问项目了,别忘了在服务器中建立对应的数据库并导入本地的数据,导入本地的数据可以将数据表导出成sql文件放到服务器上的mysql就行了。

下面是我在部署博客网站时踩的坑:

1.跨域问题

前后端项目都部署好之后,访问前端拿不到后端的数据。浏览器报的是跨域被拦截。

明明在后端的代码中就处理好跨域问题了,加了cors过滤器和注解等操作,在本地测试的时候没有毛病。

怎么放到服务器上就不行了呢?

原来是因为在宝塔面板部署项目默认会生成一个防跨站文件,只要后端代码没毛病,处理好跨域问题,删掉这个防跨站文件就行了。

2.连接数据库问题

以这个项目为例,数据库配置文件放在了jdbc.properties文件中。
连接mysql.png

url在本地测试时是locahost,放到服务器上如果要换成对应的服务器ip地址,需要在服务器上的mysql配置文件中在[mysqld] 下添加一行:"skip-name-resolve"

因为mysql默认会把连接的url当做域名解析,而你换成了ip地址会报错。

最后还有一个小坑,以上这些操作完毕访问前端还是拿不到数据,浏览器报500错误。

后端代码肯定是没毛病的,因为在本地测试时可以顺利进行。

那肯定是数据库的原因,连接成功但是返回数据失败。查看错误日志发现从数据库读取数据失败,排查后发现连接的数据库是空的。原来是将本地数据导入服务器时还是在本地的数据库名称而项目连接的是另一个数据库。希望大家不要和我犯同样的错误。

---

最后,网站终于还是部署成功了。

为博客打个广告:sharesoon.xmhome.top,欢迎大家前来访问。






使用道具 举报 只看该作者 回复
发表于 2020-9-9 12:14:46 | 显示全部楼层
1. 其实你不需要开那个对外的端口。直接映射到80 就行了。
2. 好像建立java 项目的时候是不是差了一个新建数据库的选项。
3.那个防跨站好像不会影响到java项目的啊。
4.面板还有那些不足可以提出来
使用道具 举报 回复 支持 反对
发表于 2020-9-9 17:59:25 | 显示全部楼层
宝塔技术-小强 发表于 2020-9-9 12:14
1. 其实你不需要开那个对外的端口。直接映射到80 就行了。
2. 好像建立java 项目的时候是不是差了一个新建 ...

1.在新建项目时可以选择新建数据库的话貌似更方便一些;
2.不知道为啥删了防跨站文件跨域问题就解决了;
使用道具 举报 回复 支持 反对
发表于 2021-7-19 15:17:04 | 显示全部楼层
是不是挂掉了,网站
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表