首先是购买任意类型服务器
点击进入后,选择右上角的重制密码
这个就是一会连接是用到的账号跟密码
root
Aa123456
接着下载连接工具
下载 X-shell和Xftp 注意:必须从这个页面下载安装的才可以免费使用。
x-shell创建链接
服务器公网IP 43.139.228.202
前端打包
npm run build
SpringBoot
后端打包
mvn clean package
打开xftp
新建两个文件夹子用于放前后端文件
再回到 xshell 添加 启动和停止脚本
cd /home/server/cloudprint/java
设置 application.yml 覆盖
vi后( i 切换输入模式; esc键 退出输入模式; :q!不保存退出; :wq 保存退出 )
vi application.yml
server:
port: 9090
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://43.139.228.202:3306/cloudprint?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: 123456
hikari:
connection-timeout: 60000 # 数据库连接超时时间,默认30秒,即30000
validation-timeout: 3000 # 指定验证连接有效性的超时时间(默认是5秒,最小不能小于250毫秒)
idle-timeout: 60000 # 空闲连接超时时间,一个连接idle状态的最大时长(毫秒),超时则被释放(retired),默认是10分钟,只有空闲连接数大于最大连接数且空闲时间超过该值,才会被释放
login-timeout: 5 # 指定连接数据库的超时时间,单位:秒
max-lifetime: 70000 # 指定连接池中连接的最大生存时间,单位:毫秒.默认是1800000,即30分钟
maximum-pool-size: 30 # 指定连接池最大的连接数,包括使用中的和空闲的连接,默认值10
minimum-idle: 10 # 指定连接维护的最小空闲连接数,当使用HikariCP时指定
read-only: false # 当使用Hikari connection pool时,是否标记数据源只读
servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB
ip: 43.139.228.202
mybatis:
#mapper配置文件
mapper-locations: classpath:Mapper/*.xml
type-aliases-package: com.example.printproject.entity
vi start.sh
NAME=springboot-0.0.1-SNAPSHOT.jar
nohup java -jar $NAME > server.log 2>&1 &
echo 'start success'
//注意这个springboot-0.0.1-SNAPSHOT.jar,是根据自己打包的压缩包名字填的
vi stop.sh
PORT=9090
pid=`netstat -tnlp | grep $PORT | grep -v grep | awk '{print $7}' | awk -F/ '{print $1}'`
if [ ${pid} ]; then
kill -9 $pid
echo "kill $PORT"
else
echo 'stop sucess!'
fi
赋权 chmod +x *
查看 ll 都显示绿色即可
启动后端程序
/home/server/cloudprint/java
./start.sh
server.log 就是后端生成的日志
动态查看日志
tail -f catalina.out
部署前端vue项目
cd /home/server/cloudprint/bookingprint
18. SpringBoot+Vue项目怎么部署上线 (yuque.com)
接着一些软件配置大致如连接操作即可
在运行过程中遇到以下问题:
1.本地运行前端项目可以显示页面,但部署服务器的却无法显示。
报错405 ,推测是nginx 反向代理,不支持获取用非get方法获取静态资源。
解决方法:
修改接入方式
cd /usr/local/nginx/conf
修改nginx.conf
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/server/cloudprint/bookingprint/dist;
try_files $uri $uri/ /index.html?s=$uri&args;
index index.html index.htm;
}
location /api/ {
proxy_pass http://43.139.228.202:9090/; #后端代理地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
charset utf-8;
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
执行命令重启:
cd /usr/local/nginx/sbin
./nginx -s reload
接着修改前端代码
添加 /api
修改后重修打包上传,问题解决(如果有更好的方法可在评论区提出)
2.部分数据获取异常
根据调查时页面传参为空导致的页面异常
查看代码发现是前端队友代码不规范的问题,没有将其有方法封装起来而是直接挂载,这样的后果是当用户信息不存在会自动返回上一页面去尝试获取数据,导致页面无法正常加载店铺store的内容。
解决方法:法1.用方法将封装起来再挂载。
法2.直接调换挂载顺序