Vue & SpringBoot 从零实现博客系统 (六)

本文系Vue & SpringBoot从零实现博客系统第六部分 服务器部署

服务器部署

前言

服务器部署我花了小三天的时间,虽然网上有大量的博客,但是对于我这个新手加菜鸟来说,因为网上大多数只说配置,而每个人的服务器环境又不尽相同,所以难免会踩到其他的坑。

整个服务器部署流程并不复杂,配置也并不繁琐,但是想要成功配置好,还是不免会走些弯路

环境 & 服务器
  • 阿里云(如果经费不充足,可以使用VMware等虚拟机先做一遍)
  • centos(企业级linux服务器OS)
  • ngnix(部署前端vue代码,反向代理)
  • jdk 11(我用的jdk11,自己可根据情况来处理)
  • putty / winscp(用于和服务器进行连接)
  • MySQL 8.0+(我用的MySQL8,自己根据情况处理)

注意

  • 如果用的阿里云的服务器,记得到控制台查看下端口的开放情况,我上次就是在防火墙关闭的情况下想测试下远程的后台接口,结果总是连不上8080端口,非常郁闷,最后才发现阿里云上面自带的防护措施没有开启8080端口
  • 还有一个就是当服务器装好ngnix或者mysql的时候,都要测一下,防止最后安装完成出错之后不知道错误原因在哪。MySQL的测试可以通过DataGrip去远程连接一下,比较方便
  • 因为使用的是springBoot,所以就不用安装tomcat了

部署步骤

环境的搭建
安装MySQL
安装nginx
  • centos7安装nginx
  • 只需要安装之后把nginx运行起来就行,后续会说nginx的配置
  • 验证nginx是否运行,通过浏览器打开ip就行了,上面会显示nginx,就说明运行成功
安装jdk11
代码打包到服务器
vue打包并配置nginx
  • 使用vue cli3.0的UI界面打包之后会生成dist文件夹,之后通过winscp把dist上传到centos的一个目录上

  • yum安装nginx的配置目录

  • 然后在nginx的 网站默认站点配置 而不是 全局配置中 配置自己的vue项目地址,负载等等

  • vue部署nginx

  • 下面是我的配置

    server {
        // nginx监听端口
        listen       80;
        server_name  localhost;
    
        // 因为vue中配置了跨域请求,增加了/API/,此处要把localhost:80/api/变为localhost:8080以请求后台接口,我在第四部分前端代码编写有说到
        location /api/ {
            proxy_pass http://127.0.0.1:8080/;
    	    proxy_set_header    Connection "";
            proxy_set_header    Host $host;
        	// nginx给后台tomcat传递客户端真实的请求地址
            proxy_set_header    X-Real-Ip $remote_addr;
        }
    	
        location / {
            // 之前打包的vue项目地址
        	root  /opt/vue/dist;
        	index index.html;
        	try_files $uri $uri/  /index.html last;
        }
    
    }
    

注意

  • 我刚开始因为在vue配置了跨域请求就可以了,原来nginx中也要配置
  • 同时,我是通过后台代码来获取ip的,但是当nginx和tomcat部署到同一台服务器上,所以servlet中获得的ip永远是localhost,此时就需要修改后台代码,因为我们通过nginx把客户端的真实ip放到了请求头
springboot打成jar包并部署到centos上
  • 因为通过Maven进行项目控制,只需输入命令mvn clean package -Dmaven.test.skip= true

  • 之后把打包成功的jar包通过winscp传到服务器上,通过java -jar 启动即可

  • 让jar包一直后台运行,可参考这篇博客,同时,也可以把jar包的启动和关闭直接封装为shell会更方便,如下

    • start.sh
    #!/bin/bash
    nohup java -jar blog-0.0.1-SNAPSHOT.jar --server.port=8080 &
    
    • stop.sh
    #!/bin/bash
    PID=$(ps -ef | grep blog-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
    if [ -z "$PID" ]
    then
        echo Application is already stopped
    else
        echo kill $PID
        kill $PID
    fi
    
  • 启动时sh start.sh,关闭时sh stop.sh即可

注意

  • 如果本地数据库的名称和服务器的名称不一样,一定要注意修改
  • 有问题欢迎与我交流
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值