首先介绍一下用到的东西
后端spring boot,前端vue,系统环境linux,数据库mysql、mongoDB、redis
一、系统环境
为了操作方便这里使用了宝塔面板,功能齐全免费,用着非常舒服,版本是7.9.3
安装服务器系统
到服务器管理界面安装系统,选择公共镜像,我这里安装centOS 7.9,阿里云有带宝塔的镜像,直接选那个省点事。
安装宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
执行上面命令就好,如有变动去上面官网地址查看,安装完根据提示去打开网址就好了
开放端口
这一步到这可以插进来,不开放端口无法从外网访问,其它的问题自行百度吧
需要开放的地方有两个:
一个是服务器管理后台,各家的平台管理不一样,但是大同小异,自行百度吧。
另一个是宝塔面板里的,选择安全然后就能看到放行端口
需要放行的端口有:
27017,6379,3306 分别是mongoDB,redis,mysql。由于端口可以配置,如果更改了请自行配置
除了这些还有自己要开的服务端口
我的后端是8088,前端是80,自己是啥就开啥
(差一句,端口放行还有下面配置0.0.0.0都是为了外网访问,如果说不需要可以不用配这个,应该没有人不需要吧)
安装java环境
直接传送门
下载rpm结尾的,版本的话,我项目创建用的是1.8,安装的18,反正运行成功了,懂的大佬自己尝试吧。
rpm -ivh java.rpm
这是安装命令,-ivh就是安装、输出、进度的意思,不用管,后面就是下载的包名,可以加路径
至于怎么把文件弄进去,可以借助宝塔面板的文件功能,也可以自行解决
正常来说环境变量自己搞定,不正常也自行解决吧
安装相关软件
包括mysql,mongoDB,redis,Nginx,到宝塔的软件商店下载
至于设置,分开讲吧
二、mysql数据库
这个最简单了,算是唯一一个没有坑我的
本体不用设置,直接去宝塔 数据库-mysql,然后添加数据库,每个选项都是中文的不解释了。新建完成之后就可以访问了
三、mongoDB数据库
这个开始一直坑我,在外网死活访问不了(redis也是)
这个需要设置本体配置文件,首先找到软件的配置界面
如图:把BindIP改为0.0.0.0(改配置文件也一样),不然也是外网访问不了,保存然后重启
然后去到 数据库-mongoDB新增一个数据库,也是一样都是中文不解释了。然后就可以正常访问了
四、redis
如图:bind改为 0.0.0.0,requirepass自己设置个连接密码,保存重启
五、部署后端项目
找到 网站 - java项目
首先添加个jdk,找到jdk管理,添加jdk,目录就是上面安装的java目录一般都在bin目录下,自己找找。
这里只说下需要注意的配置
项目类型选择spring boot,路径选择自己的jar包路径,我们一般都放在www/wwwroot目录下
(什么?jar包,不会有人不会打jar包吧。好吧插一条:用的idea的话,找到maven,然后执行clear,再执行install,jar包就在生成的target目录下面,命令的话好像是mvn install,就是maven的命令,自行百度吧)
端口选择自己要部署的端口(可以和开发时候不一样),记得执行命令里面端口也要改掉!!!这个重要,至于其余命令,自行百度吧,可以不用管。
然后保存,运行好像是自动的,没有自动就手动运行下
六、部署前端
我这用的是vite,直接yarn build打包,npm也一样。
找到 网站 - php项目
添加站点,不截图了,就两点,域名:加个自己的域名就好了,没有的话就用ip,放IP,可以设置端口,不写默认80,然后就是项目路径,放那里就选择那里
这里也有个坑啊,我也不知道为啥,建议先来这里新建站点,建完之后将前端项目文件覆盖到生成的目录下面。反正之前配置的一直访问不了。
然后将整个打包文件复制到服务器,目录自己规划好,建议和后端的文件统一放到一个项目文件夹下
到这应该是能正常访问了,但是请求应该不行,因为跨域。下面要进行反向代理
找到刚才添加的站点:
设置-反向代理-添加反向代理
我这里是localhost,因为在一台服务器,也可以是ip或者域名,看自己需求。其它的随便填吧。
之所以随便填是因为我怎么配都不好使。不知道为啥。可能是我不会用吧。
添加好之后,列表里会有一条代理规则,选择配置文件,直接删掉
#PROXY-START/
location /api
{
rewrite ^.+api/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://localhost:8088;
}
#PROXY-END/
配置如上,稍微解释一下,location后面配置的是代理路径,就是遇到什么样的请求需要代理,我这里用的是/api,也可以是其它的,这个主要看前端请求路径是怎么配的。
然后rewrite这里匹配规则要不是api请也一并改为对应的
proxy_pass 就是代理路径,同上面配置的就好
到此部署应该结束了。至于域名访问,做一下域名解析就好了,解析道这个服务器ip。自行百度吧。
唠叨几句
关于代理的问题,建议请求后的的ajax请求都带上统一路径,方便开发和部署时候做代理。我这里统一加的是/api。
这代理是根据路径匹配的,如果配置的匹配会匹配到页面路径地址,那么会造成页面访问异常。反正自己研究一下吧。