宝塔面板轻量云服务器部署spring boot java后端、vite vue3前端、nginx。

news2024/11/13 23:40:08

环境

初始时宝塔面板推荐应用安装选择

根据开发或者测试。选择安装配置,等待两个安装任务完成。

  • niginx
  • mysql

安装jdk

显示jdk列表 
yum -y list java*
安装指定版本
yum install -y java-1.8.0-openjdk.x86_64
默认安装到 usr/lib/jvm/ ,无需再配置环境变量

防火墙

外部防火墙(云厂商外部配置)

  • 20 端口 ,策略 拒绝 (FTP主动模式数据端口用不到)
  • 21 端口 ,策略 拒绝 ( FTP协议默认端口用不到)
  • 3389 端口 策略 拒绝 (Windows远程桌面登录用不到)
  • 其他默认开启端口(3306 mysql,8888 宝塔,80 http,443 https,22 ssh,ALL Ping ICMP协议)

内部防火墙(服务器内的)

1 命令行方式

// 开启防火墙
 systemctl start firewalld ​
#显示状态
firewall-cmd --state
#查询指定端口是否已开
firewall-cmd --query-port=3306/tcp 
#添加端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
 #关闭端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent 
#重新载入  
firewall-cmd --reload

2 宝塔面板ui界面方式

  • 安全
  • 防火墙开关 yes
  • 填写端口
  • 填写备注
  • 点击放行
  • 如果外部防火墙没开,手动去防火墙页面开,或者点击蓝字提示帮你开。

添加

  • 根据自己需要的端口进行添加。
  • 检查是否外层防火墙放行端口,内部防火墙的端口都是开启状态 确保外层防火墙和内部防火墙端口都是正常开启状态

远程连接

ssh

宝塔面板生成密钥

  • 安全
  • ssh安全管理
  • SSH密钥登录 yse
  • 是否允许root登录 yes
  • 下载密钥

finalShell添加连接

  • 名称 随意
  • 主机 服务器ip
  • 端口 22
  • 认证方法 公钥
  • 私钥-浏览-导入-选择下载的密钥位置(名称随意,私钥密码没有不填)
  • 点击应用
  • 测试连接

mysql5.7

服务器内添加远程连接账户

// 进入mysql
// 创建并且授权新用户,用户名为admin, 密码为你的密码,在宝塔-数据库-root密码中查看。 %代表所有的ip均可访问
//刷新
// 改变数据库
// 查看添加的用户数据

mysql -uroot -p你的密码;
grant all privileges on *.* to 'admin'@'%' identified by '你的密码' with grant option;
flush privileges;
use mysql;
select host,user from user;

navicat配置

  • 主机 服务器ip
  • 端口 3306(默认)
  • 用户名 上面的
  • 密码 上面的
  • 测试连接

部署

nginx

测试http

在 /home/www/hellol/ 下添加index.html测试文件
宝塔中找到nginx应用,修改配置,新增 80端口 server块,监听http ,添加hello测试连通性

 server 
 {
        listen       80;
        server_name  localhost;
        location /hello/ {
     	  root   /home/www/;
        index  index.html;
        }
 }

重启nginx服务,访问 http://你的服务器地址/hello/ ,http测试成功。
在这里插入图片描述

部署spring boot

mysql

  • navicat连接mysql ,导入sql脚本。(如果是8.0导入5.7版本的mysql把所有的utf8mb4_0900_ai_ci替换为utf8_general_ci ,把所有的utf8mb4替换为utf8)
  • 宝塔面板- 数据库-从服务器获取(获取刚才导入的)- 同步所有(将宝塔配置的用户名密码同步回去)

yaml

application.yaml ,active设置为online

spring:
  profiles:
    active: online

application-online.yaml

  datasource:
    url: jdbc:mysql://localhost:3306/你的数据库名称?useUnicode=true&characterEncoding=utf8
    username: 宝塔上从服务器获取时候显示的,这个账号只能本机连接,所以上面是localhost
    password: 宝塔上从服务器获取时候显示的,这个账号只能本机连接,所以上面是localhost
knife4j:
  enable: true  // 开启增强
  production: true // 关闭文档线上预览
server:
  port: 8081 端口号
  servlet:
    context-path: /hgBill/api  虚拟路径

pom

跳过test测试

    <properties>
        <java.version>1.8</java.version>
        <skipTests>true</skipTests>  // 跳过
    </properties>

打包

maven-lifecycle- clean - package 。打包文件放入服务器自定目录下

宝塔设置

宝塔 -网站 -添加java项目 -启动

开启防火墙端口

内外防火墙放行项目运行的端口

查看

  • 端口 :8081
  • 虚拟路径:/hgBill/api
  • 访问 http://服务器地址:8081/hgBill/api/doc.html#/home 查看成功
    在这里插入图片描述

部署vue3 vite

环境配置

.env.production

# 接口地址
VITE_GLOB_API_URL=http://服务器地址:8081/hgBill/api
# public 地址
VITE_PUBLIC_PATH = /hgBill

打包

build

nginx配置

添加后重启nginx

        location /hgBill/ {
     	  root   /home/www/;
          index  index.html;
        }

测试访问

http://你的服务器地址/hgBill/
在这里插入图片描述

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

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

相关文章

干货 | 简单了解运算放大器...

运算放大器发明至今已有数十年的历史&#xff0c;从最早的真空管演变为如今的集成电路&#xff0c;它在不同的电子产品中一直发挥着举足轻重的作用。而现如今信息家电、手机、PDA、网络等新兴应用的兴起更是将运算放大器推向了一个新的高度。01 运算放大器简述运算放大器&#…

Linux环境变量讲解

目录 环境变量 alias命令 type命令 变量分类 Linux最主要的全局环境变量 环境变量 变量是计算机系统用于保存可变数值的数据类型 在Linux中&#xff0c;一般变量都是大写&#xff0c;命令是小写 在Linux中&#xff0c;变量直接使用&#xff0c;不需要定义&#xff08;更快…

Spring框架自定义实现IOC基础功能/IDEA如何手动实现IOC功能

继续整理记录这段时间来的收获&#xff0c;详细代码可在我的Gitee仓库Java设计模式克隆下载学习使用&#xff01; 7.4 自定义Spring IOC 创建新模块&#xff0c;结构如图![[Pasted image 20230210173222.png]] 7.4.1 定义bean相关POJO类 7.4.1.1 定义propertyValue类 /** …

Linux--POSIX信号量--基于环形队列的生产消费模型-0208

1. 什么是信号量 共享资源由于原子性的原则&#xff0c;任何时刻都只有一个执行流在进行访问。表现为互斥&#xff0c;也就代表共享资源起始是被当做整体来访问的。 那如果有一个共享资源&#xff0c;不当成一个整体&#xff0c;让不同的执行流访问不同的资源区域代码&#x…

67 自注意力【动手学深度学习v2】

67 自注意力【动手学深度学习v2】 深度学习学习笔记 学习视频&#xff1a;https://www.bilibili.com/video/BV19o4y1m7mo/?spm_id_fromautoNext&vd_source75dce036dc8244310435eaf03de4e330 给定长为n 的序列&#xff0c;每个xi为长为d的向量&#xff0c;自注意力将xi 既当…

Java中的异常处理

1.概述 在 Java 中&#xff0c;所有的异常都有一个共同的祖先java.lang包中的 Throwable类。 异常是程序中的一些错误&#xff0c;但并不是所有的错误都是异常&#xff0c;并且错误有时候是可以避免的。 比如说&#xff0c;你的代码少了一个分号&#xff0c;那么运行出来结果…

二叉树和堆的讲解和实现(图解+代码/C语言)

今天和大家分享的是二叉树的实现&#xff0c;关于遍历二叉树部分均采用递归的方式实现&#xff0c;最后附上部分OJ题供大家练习。 文章目录一、树的概念及结构1.1 树的概念1.2 树的相关概念1.3 树的表示二、二叉树的概念及结构2.1 概念2.2 二叉树的性质2.3 二叉树的存储结构2.…

proxy代理与reflect反射

proxy代理与reflect 在这之前插入一个知识点arguments&#xff0c;每个函数里面都有一个arguments&#xff0c;执行时候不传默认是所有参数&#xff0c;如果传了就是按顺序匹配&#xff0c;箭头函数没有 代理函数 代理对象也就是生成一个替身&#xff0c;然后这个替身处理一切的…

【深度学习】认识神经网络

上一章——过拟合与正则化 从本章开始我们将学习深度学习的内容&#xff1a;包括神经网络和决策树等高级算法 文章目录神经网络的生物学原理神经网络的算法结构案例——图像感知神经网络的前向传播神经网络的生物学原理 在最开始&#xff0c;人们想要构建一个能够模拟生物大脑…

Python __doc__属性:查看文档

在使用 dir() 函数和 __all__ 变量的基础上&#xff0c;虽然我们能知晓指定模块&#xff08;或包&#xff09;中所有可用的成员&#xff08;变量、函数和类&#xff09;&#xff0c;比如&#xff1a;import string print(string.__all__)程序执行结果为&#xff1a;[ascii_lett…

Zabbix 构建监控告警平台(六)

监控TCP连接监控MySQL监控php-fpm监控 Apache监控 MySQL A-B监控磁盘I/O1.监控TCP连接 1.1 tcp状态简介 netstat中的各种状态&#xff1a; CLOSED 初始&#xff08;无连接&#xff09;状态。 LISTEN 侦听状态&#xff0c;等待远程机器的连接…

自动驾驶规控课程学习——决策规划

行为决策系统的规划1 行为决策基础1.1 基本概念与任务行为类型&#xff1a;系统输入输出&#xff1a;输入&#xff1a;定位、感知、地图等输出&#xff1a;决策意图小例子&#xff1a;1.2决策系统的评价与挑战评价指标挑战&#xff08;1&#xff09;决策密度&#xff08;2&…

卡尔曼滤波器与DSP实现

卡尔曼滤波器是利用系统状态方程&#xff0c;结合测量结果对系统状态进行进行最优估计的算法。本文介绍它的主要公式&#xff0c;并举例在C6000 DSP上实现。 推荐资料 KalmanFilter.NETUnderstanding Kalman Filters卡尔曼滤波与组合导航原理 “If you can’t explain it sim…

rust 程序设计语言入门(1)

本文是阅读《Rust程序设计语言》的学习记录&#xff0c;配合视频《Rust编程语言入门教程》食用更佳 环境搭建 windows下载rustup_init.exe&#xff0c;点击安装&#xff0c;默认选择msvc的toolchain&#xff0c;一路default即可 解决下载慢的问题&#xff0c;在powershell中修…

libxlsxwriter条件格式

今天来看一个libxlsxwriter的高级用法&#xff1a;一个条件格式的示例。 说它“高级”&#xff0c;也是基于非Excel专家的小白们的视角。对&#xff0c;没错&#xff0c;本小白正是这样的小白。 1 一个简单的问题 来看我们今天的场景问题&#xff1a;有一列数据&#xff0c;有…

操作系统(一): 进程和线程,进程的多种状态以及进程的调度算法

文章目录前言一、进程和线程1. 进程2. 线程二、进程和线程的区别(面试常问)三、进程调度算法3.1. 批处理系统3.2. 交互式系统3.2.1 时间片轮转3.2.2 优先级调度3.2.3 多级别反馈队列3.3. 实时系统四、进程的状态五、进程同步5.1 什么是进程同步5.2 进程同步应该遵循的几点原则前…

Qt 学习(四) —— QGridLayout栅格布局

目录一、QGridLayout布局规则二、创建QGridLayout三、成员函数1. 控件间距2. 可拉伸控件&#xff08;弹簧&#xff09;3. 最小行高/列宽4. 行数和列数5. 锁定纵横比6. 添加控件7. 添加布局8. 设置栅格布局原点位置9. 操作布局项9.1 访问布局项9.2 删除布局项9.3 通过索引获取布…

Git教程个人分享:如何将一个本地项目上传至远程仓库的流程

前言&#xff1a; 今天来分享一下&#xff0c;关于Git的一些教程&#xff0c;同时这也是我自己曾今学习Git时候的笔记&#xff0c;之所以更&#xff0c;也是方便后期自己可以去回顾&#xff0c;当然后面也会出一部分关于Git其他操作方面的内容。 这次我们分享的是&#xff0c…

基于JavaScript的Web端股票价格查看器——大道

&#x1f436; 基于JavaScript的Web端股票价格查看器——大道 一、项目背景 当下互联网发展迅速&#xff0c;互联网已经不断向传统金融领域渗透。在互联网上有大量金融领域的数据&#xff0c;如何利用好这些数据&#xff0c;对于投资者来说是十分重要的一件事情。股票价格实时…

JavaSE学习day4_01 循环for,while,do...while

1. 循环高级 1.1 无限循环 for、while、do...while都有无限循环的写法。 最为常用的是while格式的。 因为无限循环是不知道循环次数的&#xff0c;所以用while格式的 代码示例&#xff1a; while(true){} 1.2 跳转控制语句&#xff08;掌握&#xff09; 跳转控制语句&…