springboot + vue 部署 阿里云云服务器 ECS

news2024/12/24 21:06:00

安装所需文件

安装mysql5.7

  • 下载MySQL的yum源配置
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  • 安装MySQL的yum源
yum -y install mysql57-community-release-el7-11.noarch.rpm
  • 使用yum方式安装MySQL5.7(下载需要点时间,我们可以在网速比较好的地方下载)
yum -y install mysql-server --nogpgcheck --nogpgcheck #不校验数字签名
  • MySQL5.7的开启关闭和开机自启命令
systemctl start mysqld.service 
systemctl status mysql.service
  • 登录mysql前需找到mysql的默认密码 cat /var/log/mysqld.log| grep password
cat /var/log/mysqld.log| grep password 
# 2022-11-02T15:01:52.976608Z 1 [Note] A temporary password is generated for root@localhost: !Th7<vMBA2w_
  • 登录mysql
mysql -uroot -p'!Th7<vMBA2w_'
  • 登录进mysql,要求更改密码(密码需要一定的复杂度),并且给其他机器授权可以登录mysql
# 密码要数字、字母大写、小写、特殊字母
ALTER USER USER() IDENTIFIED BY '3133030Liu,';

# (立即刷新配置)
flush privileges;

grant all privileges on . to 'root'@'%' identified by '3133030Liu,' with grant option; 

# (立即刷新配置)
flush privileges;
  • 修改MySQL默认的密码策略(使MySQL可以设置简单的密码)
set global validate_password_policy=0;
set global validate_password_length=1; 
flush privileges;
  • 这时我们可以给mysql设置简单的密码,再授权
alter user 'root'@'localhost' identified by '123456';
# grant all privileges on . to 'root'@'%' identified by '123456' with grant option;
flush privileges;
  • 再次登录
exit  #退出MySQL
mysql -uroot -p123456  #使用刚设置的简单密码登录一下MySQL

安装nginx

  • 安装epel-release 因为Nginx并不在官方的yum源中,需要第三方的yum源
# 我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,
# 很多时候需要自己编译很痛苦,而EPEL恰恰可以解决这两方面的问题
yum -y install epel-release
 
# 更新yum源
yum -y update
  • 安装Nginx
yum install -y nginx
  • 验证nginx安装是否成功
# 查看nginx安装版本,-V可以看到nginx的安装的文件路径
nginx -V 
 
# 查看安装的nginx的版本
rpm -qa | grep nginx
  • Nginx启动、设置开机自启、查看运行状态、停止命令
systemctl start nginx
systemctl enable nginx
systemctl status nginx
systemctl stop nginx
  • 相关文件路径
#编辑Nginx配置文件
vim /etc/nginx/nginx.conf
 
#检测配置文件语法是否正确
nginx -t
 
#重新加载Nginx配置
nginx -s reload

# 日志路径
/var/log/nginx

安装redis

  • 安装redis数据库
# 上面已经  yum install epel-release 过了一次,直接就可以安装redis
yum install -y redis
  • 安装完毕后,使用下面的命令启动redis服务
# 启动redis
service redis start

# 停止redis
service redis stop

# 查看redis运行状态
service redis status

# 查看redis进程
ps -ef | grep redis
  • 设置redis为开机自动启动
chkconfig redis on
  • 进入redis服务
# 进入本机redis
redis-cli

# 列出所有key
keys *

安装java

  • 下载
    下载jdk地址:https://www.oracle.com/cn/java/technologies/downloads/
    在这里插入图片描述
    下载账号:
// 自己搜:Oracle官网登录用户名密码分享
账号:1971159263@qq.com
密码:Jia19981203
  • 上传
    下载并使用FinalShell工具上传文件
  • 解压
# 解压
tar -zxvf jdk-8u371-linux-x64.tar.gz

# 移动
mv jdk1.8.0_371 /home/jdk8

# 到此目录下
cd /home/jdk8/bin

# 运行此命令可以查看,刚安装好后的版本号
./java -version
  • 配置全局的环境变量

写入配置文件

vim /etc/profile

在配置文件最后面加上这一句

JAVA_HOME=/home/jdk8
PATH=$JAVA_HOME/bin:$PATH

重新加载profile文件,使更改的配置立即生效

source /etc/profile
  • 检查安装是否成功
java -version

开放防火墙接口

mysql的端口为3306
redis的端口为6379

CentOS 7.9 防火墙开放端口

  • 开放固定端口(我比较懒直接关闭防火墙)
# 开放5672端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent 

#关闭5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent 

# 配置立即生效
firewall-cmd --reload 
  • 查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
  • 防火墙操作
# 查看防火墙状态
systemctl status firewalld.service     

# 本次访问关闭防火墙
systemctl stop firewalld.service     

# 从下次开始关闭防火墙
systemctl disable firewalld.service   

# 打开防火墙
systemctl enable firewalld.service   

# 重启防火墙
systemctl restart network

阿里云开放安全组端口

在这里插入图片描述

准备配置

nginx

/etc/nginx/conf.d建立一个子配置文件

cd /etc/nginx/conf.d
vim airport.conf

文件内容

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /mnt/www/airport; # 前端工程文件放置的位置
            index  index.html index.htm;
        }

        #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;
        }

    }

重启nginx

nginx -s reload

创建项目目录放置文件夹

cd /mnt
mkdir -p www/airport
cd www/airport
# 随便写点什么,看看是否能访问
vim index.html

访问:http://8.134.93.xxx/(你自己的阿里云地址)
在这里插入图片描述

redis

vim /etc/redis.conf

把​bind 127.0.0.1​​改成bind 0.0.0.0,让外网可以访问(有黑客攻击的风险)

notify-keyspace-events改成notify-keyspace-events Ex(30分钟未支付出发支付过期方案)

注意:改了配置要重启Redis

# redis-server /etc/redis.conf
# 停止redis
service redis stop
# 启动redis
service redis start

mysql

让外网可以访问
登入mysql

mysql -uroot -p123456
# 首先先进入mysql的服务,选择mysql这个库,然后查看user用户的host属性,会发现其host属性值是localhost,意思是只准许本地的连接访问。此时我们要对他修改为谁都可以访问的。
# 修改的sql语句如下:
use mysql;
update user set host="%" where user="root";
flush privileges;

外网就能访问了

项目上传

先把数据库表创建出来

springboot项目打包上传

修改配置文件(上传文件路径、mysql地址账号、redis地址密码等要修改)
在这里插入图片描述
打包
在这里插入图片描述
打包后的地址
在这里插入图片描述
上传jar包到阿里云服务器
在这里插入图片描述
启动服务

nohup java -jar ticket_back-0.0.1-SNAPSHOT.jar > ticket_back.log  2>&1 &

前端

  • 项目配置修改
    vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from "path"

import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  //基本路径 文件打包后放的位置
  publicPath: './',

  //默认输出文件夹为dist,填入的名字为打包后的文件名
  outputDir: 'name',

  // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。资源放的目录
  assetsDir: './static',

  // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径 index的路劲和名字
  indexPath: './index.html',

  //打包后是否生成map文件,map文件能看到错误代码位置,设置为false不生成map文件,打包体积缩小
  productionSourceMap: false,
  plugins: [
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
    vue()
  ],
  resolve: {
    alias: {
      "~": path.resolve(__dirname, "src")
    }
  },
  server: {
    // host设置为true才可以使用network的形式,以ip访问项目
    host: true,
    // 端口号
    port: 3100,
    // 自动打开浏览器
    open: true,
    // 跨域设置允许
    cors: true,
    // 如果端口已占用直接退出
    strictPort: true,
    // 接口代理
    proxy: {
      '/api': {
        target: 'http://8.134.93.xxx:8081',
        // 允许跨域
        changeOrigin: true,
        // 重写地址
        rewrite: (path) => path.replace('/api/', '/')
      }
    }
  },
  build: {
    // 在生产环境移除console.log
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      },
    },
  },
  css: {
    preprocessorOptions: {
      // 全局样式引入
      scss: {
        additionalData: '@import "./src/assets/scss/common.scss";',
        javascriptEnabled: true
      }
    }
  }
})
  • 打包npm run build
  • nginx 配置修改(主要文件路径和vue代理修改了)
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /mnt/www/airport/dist;
            index  index.html index.htm;
            
            # 添加下面的几行 vue项目刷新不会404
            try_files $uri $uri/ @router;
        }

        # 添加下面的几行 vue项目刷新不会404
        location @router {
            rewrite ^.*$ /index.html last;
        }
        
        # 设置反向代理,因为前台是通过代理访问的  记得加上 最后的/不然无效。
        location /api/ {
            proxy_pass      http://8.134.93.xxx:8081;
            proxy_cookie_path / /api;
            proxy_redirect default;
            rewrite ^/api/(.*) /$1 break;
            client_max_body_size 500m;
        }

        #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;
        }
    }

重启

nginx -s reload

可以访问项目了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【 断电延时继电器 电源监视 导轨安装 JOSEF约瑟 HJZS-E202 AC220V】

品牌&#xff1a;JOSEF约瑟型号&#xff1a;HJZS-E202名称&#xff1a;断电延时继电器额定电压&#xff1a;110、220VDC/AC&#xff1b;100VAC触点容量&#xff1a;250V/5A功率消耗&#xff1a;≤4.2W返回系数&#xff1a;10%额定电压 系列型号&#xff1a; HJZS-E202断电延时…

4.4 栈实现及其应用

目录 栈 顺序栈 创建栈: 清空栈: 判断栈是否空 &#xff1a; 进栈 : 出栈 : 取栈顶元素: 栈 栈是限制在一端进行插入操作和删除操作的线性表&#xff08;俗称堆栈&#xff09; 允许进行操作的一端称为“栈顶” 另一固定端称为“栈底” 当栈中没有元素时称为“空栈”…

Robbin负载均衡详解及实践---SpringCloud组件(三)

Robbin负载均衡详解及实践 一 为什么使用Robbin&#xff1f;二 Robbin概念三 负载均衡实践1.启动eureka客户端2.启动多个provider服务&#xff0c;注册到eureka3.在consumer端配置负载均衡参数 四 Robbin源码剖析 一 为什么使用Robbin&#xff1f; 在Eureka详解及实践—Spring…

SAS初识

1、SAS常用工作窗口 “结果”&#xff08;Result&#xff09;窗口——管理SAS程序的输出结果&#xff1b; “日志”&#xff08;Log&#xff09;窗口——记录程序的运行情况&#xff1b; “SAS资源管理器”&#xff08;Explore&#xff09;窗口&#xff1b; “输出”&#xff0…

详解vue中的Object.defineProperty

如果想要age遍历的话 就设置属性 打印出来 发现有可以枚举的属性age 参考课程&#xff1a; 011_尚硅谷Vue技术_Object.defineProperty_哔哩哔哩_bilibili // 1.Vue中的数据代理&#xff1a; // 通过Vm对象来代理data对象中属性的操作&#xff08;读/写&#xff09; // 2…

STL容器 —— list 了解、接口使用,以及模拟实现list(部分常用接口)

注意 &#xff1a; 以下所有文档都来源此网站 &#xff1a; http://cplusplus.com/ 一、vector的介绍及使用 list文档的介绍&#xff1a;https://cplusplus.com/reference/list/list/ 1. vector 的介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&…

python自动化测试工具selenium使用指南 ,绝对能帮到你

目录 概述 pythonselenium环境安装 使用selenium启动浏览器 selenium页面加载等待和检测 使用time.sleep()等待 使用implicitly_wait设置最长等待时间 使用WebDriverWait设置等待条件 检测document是否加载完成 selenium元素定位和读取 查找元素 dom元素交互 查找元…

地址族和数据序列

IP地址 为使计算机连接到网络并收发数据,必需向其分配IP地址。 IP地址分为两类。 IPv4 (Internet Protocol version 4)4字节地址族 IPv6 (Internet Protocol version 6)16字节地址族 IPv4与IPv6的差别主要是表示IP地址所用的字节数,目前通用的地址族为IPv4。 IPv6是为了应对20…

全面接入!ChatGPT杀进15个商业应用,让AI替你打工

ChatGPT API开放60多天&#xff0c;世界已经不是两个月前的样子了。 微软联合创始人比尔盖茨称GPT是“40多年来最革命性的技术进步”&#xff0c;英伟达创始人黄仁勋高呼&#xff1a;“我们正处于AI的iPhone时刻”&#xff0c;阿里董事会主席兼CEO张勇也说&#xff1a;“所有行…

经验总结:(Git 版本控制工具快速入门)

Git学习笔记 版本控制(版本迭代) 什么是版本控制 版本迭代&#xff0c;开发过程中&#xff0c;对项目各个阶段的版本的控制。 在开发过程中用于管理我们对文件、目录或工程等内容的修改历史&#xff0c;方便查看更改历史记录&#xff0c;备份以便恢复以前的版本。 多人开发…

ADV7391BCPZ-ASEMI代理亚德诺ADV7391BCPZ原厂芯片

编辑-Z ADV7391BCPZ参数描述&#xff1a; 型号&#xff1a;ADV7391BCPZ VDD&#xff1a;1.8V VAA&#xff1a;3.3V 全驱动输出电流&#xff1a;34.6 mA 低驱动输出电流&#xff1a;4.3 mA 输出电容&#xff1a;10 pF 模拟输出延迟&#xff1a;6 ns DAC模拟输出倾斜&am…

x509证书-crl证书吊销

标准 CRL fields -- 版本、时间、证书序列号和扩展名 -- 都是在4.1节的ASN.1中定义的 -- AlgorithmIdentifier 在第 4.1.1.2 节中定义 以下各项描述了 X.509 v2 CRL 在 Internet PKI 中的使用。 关于签名值和验证 signatureValue 字段包含根据 ASN.1 DER 编码的 tbsCertList 计…

13-Vue技术栈之路由的使用

目录 1、路由相关理解1.1 vue-router 的理解1.2 对 SPA 应用的理解1.3 路由的理解1.4 路由分类 2、路由的基本使用2.1 实现效果&#xff1a;2.2 实现思路&#xff1a;2.3 实现步骤&#xff1a;2.4 具体代码2.5 几个注意点 3、多级路由&#xff08;嵌套路由&#xff09;4、路由的…

中科院学术专用版GPT Academic项目实现

【写在最前】要完成GPT 学术优化 (GPT Academic)这个项目需要一些值得注意的地方&#xff1a; chatGPT账户有余额且未过期&#xff01;&#xff01;&#xff01;有代理工具&#xff08;类似Clash&#xff09; 1、代码克隆 https://github.com/binary-husky/gpt_academic 根据…

Java后端调取微信小程序接口,创建微信小程序直播间

前提条件&#xff1a; 1.注册微信小程序 2.获取appId和secret秘钥 3.小程序具备直播权限 小程序直播开发文档网址 目录 1.创建和修改直播间 2.删除直播间 3.获取直播间分享二维码 1.创建和修改直播间 两个功能一起写&#xff0c;区别在于&#xff0c;修改的时候需要多一…

【数字化转型-05】数字化转型中战略驱动的利器——平衡计分卡

今年的4月19日&#xff0c; 华为第20届全球分析师大会上&#xff0c;华为孟晚舟在大会上发表了“初心如磐&#xff0c;奋楫笃行&#xff0c;共赢数字化未来”的主题演讲&#xff0c;其中分享了对数字化转型的三个核心洞见&#xff0c;首先&#xff0c;战略驱动是根本&#xff0…

Mojo:比 Python 快 35000 倍的 AI 编程语言

Mojo&#xff1a;比 Python 快 35000 倍的 AI 编程语言 Mojo是一门刚刚发布的面向 AI 开发人员的编程语言。 Mojo 被设计为 Python 的超集&#xff0c;所以如果你已经掌握了 Python&#xff0c;学习 Mojo 会很容易。关键是 Mojo 将 Python 的易用性与 C 语言的性能相结合&am…

AIGC—— 内容生产力革命的起点

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.AIGC 1.什么是AIGC? 2.AIGC有哪些优势与挑战 &#xff08;1&#xff0…

51单片机(十)DS1302实时时钟

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

Solon 框架,单月下载量突破100万了!!!

Solon 框架&#xff0c;单月下载量突破100万了。感谢开源的力量和社区的支持&#xff0c;我们同喜同荣&#xff01;&#xff01;&#xff01;目前&#xff0c;作为新成员加入了“可信开源共同体”&#xff0c;也积极参与中科院的“开源之夏”计划&#xff0c;也备受某军工服务商…