Ubuntu22.04LTS 部署前后端分离项目

一、安装mysql8.0

1. 安装mysql8.0

# 更新安装包管理工具
sudo apt-get update
# 安装 mysql数据库,过程中的选项选择 y 
sudo apt-get install mysql-server
# 启动mysql命令如下 (停止mysql的命令为:sudo service mysql stop)
sudo service mysql start# 查看mysql的启动状态
sudo service mysql status# 设置开机自启
sudo systemctl enable mysql

2. 设置数据库密码

# 登录数据库,直接回车,第一次安装没有密码
sudo mysql -u root -p# 设置你的密码 0000000改为你的密码即可
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '0000000';# 更新你的账户保证可以所有ip访问
update user set host='%' where user ='root';# 数据库刷新
FLUSH PRIVILEGES;

3. 修改配置,以便后面用navicat远程连接

# 打开mysql配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf# 将bind-address改成0.0.0.0
bind-address = 0.0.0.0

二、安装java21.0.5

# 进入到/home/linux目录,没有自行创建
cd /home/linux# 下载安装压缩包
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz# 创建文件夹env
mkdir env# 将下载的压缩包放到里面
mv jdk-21_linux-x64_bin.tar.gz ./env# 进入env并进行解压
cd ./envtar -zxvf jdk-21_linux-x64_bin.tar.gz# 配置系统配置文件
sudo vim /etc/profile# 系统配置文件对应的增加以下3行
export JAVA_HOME=/home/linux/env/jdk-21.0.2    #jdk保存路径
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${CLASSPATH}:${JAVA_HOME}/bin:$PATH# 按下esc后,输入:wq保存退出# 刷新系统配置
source /etc/profile# 检查java安装情况
java --version

三、Redis安装

1. 安装

sudo apt install lsb-release curl gpgcurl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.listsudo apt-get updatesudo apt-get install redis

2. 修改Redis配置,修改密码

# 编辑配置文件
sudo vim /etc/redis/redis.conf

requirepass就是你的密码

相关的操作

启动方式一
/etc/init.d/redis-server start
启动方式二
systemctl start redis-server
启动方式三
service redis-server start
重启
service redis-server restart
关闭
service redis-server stop
查看状态
service redis-server status

四、Nginx安装

1. 安装

sudo apt update# 安装Nginx
sudo apt install nginx# 查看状态
sudo systemctl status nginx# 使用UFW开放Nginx所需要的端口 80.443
sudo ufw allow 'Nginx Full'# 开机自启
sudo systemctl enable nginx# 检查状态
sudo systemctl status nginx

2. 常用相关口令

# 启动
sudo systemctl start nginx# 停止
sudo systemctl stop nginx# 重启
sudo systemctl restart nginx# 重载配置文件
sudo systemctl reload nginx# 取消开机自启
sudo systemctl disable nginx# 检查状态
sudo systemctl status nginx# 查看相关日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

3. 项目打包的dist部署

(1) 将dist上传到云服务器,如我的路径是/home/fcty/frontend/dist这样

(2)编写一个新的配置文件在frontend文件夹,注意我前端请求/api会转发

server {listen 80;server_name your_domain_or_IP;  # 替换为你的域名或IP地址# 服务前端静态文件location / {root /home/fcty/frontend/dist;try_files $uri $uri/ /index.html;  # 如果请求的文件不存在,返回index.html}# 代理 /api 路径到后端服务,并去除 /api 前缀location /api/ {proxy_pass http://127.0.0.1:8800/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;# 下面的这行通常不是必需的,因为 Nginx 默认会转发所有请求头# proxy_pass_request_headers on;  # 默认已经是开启状态}# 如果有需要处理的其他路径或设置,可以在这里添加
}

 (3)将编写好的配置文件复制到对应的/etc/nginx/sites-enabled/下,注意不可以用ln,会报错

cp /home/fcty/frontend/clientconf /etc/nginx/sites-enabled

(4)检查nginx测试配置文件正常

sudo nginx -t

(5)检查无误重启即可登录成功

sudo systemctl restart nginx

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

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

相关文章

Python爬虫:如何从1688阿里巴巴获取公司信息

在当今的数字化时代,数据已成为企业决策和市场分析的重要资产。对于市场研究人员和企业分析师来说,能够快速获取和分析大量数据至关重要。阿里巴巴的1688.com作为中国最大的B2B电子商务平台之一,拥有海量的企业档案和产品信息。本文将介绍如何…

10 基于深度学习的目标检测

首次完成时间:2024 年 11月 20 日 1. 使用OpenCV的dnn模块实现图像分类。 1)程序代码: import numpy as np import cv2# 解析标签文件 row open("model1/synset_words.txt").read().strip().split("\n") class_label …

Spring WebFlux 高级实战(3-2)

1、SpringBoot 使用 1.1、Spring Core 中的响应式 Spring 生态系统的核心模块是Spring Core 模块。Spring 5.x 引入对响应式流和响应式库的原生支持,其中,响应式库包含RxJava 1/2 和Project Reactor 3。 1.1.1、响应式类型转换支持 为了支持响应式流规…

河道水位流量一体化自动监测系统:航运安全的护航使者

在广袤的水域世界中,航运安全始终是至关重要的课题。而河道水位流量一体化自动监测系统的出现,如同一位强大的护航使者,为航运事业的稳定发展提供了坚实的保障。 水位传感器:负责实时监测河道的水位变化。这些传感器通常采用先进的…

RHCE的学习(21)

第三章 Shell条件测试 用途 为了能够正确处理Shell程序运行过程中遇到的各种情况,Linux Shell提供了一组测试运算符。 通过这些运算符,Shell程序能够判断某种或者几个条件是否成立。 条件测试在各种流程控制语句,例如判断语句和循环语句中…

经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)

从生成 SSH 密钥到成功连接测试的经验笔记(以Gitee为例) 1. 生成 SSH 密钥对 选择合适的加密算法 ED25519: 密钥长度:私钥 256 位(32 字节),公钥 256 位(32 字节)&#…

uni-app Vue3语法实现微信小程序样式穿透uview-plus框架

1 问题描述 我在用 uni-app vue3 语法开发微信小程序时,在项目中使用了 uview-plus 这一开源 UI 框架。在使用 up-text 组件时,想要给它添加一些样式,之前了解到微信小程序存在样式隔离的问题,也在uview-plus官网-注意事项中找到…

数据结构(双向链表——c语言实现)

双向链表相比于单向链表的优势: 1. 双向遍历的灵活性 双向链表:由于每个节点都包含指向前一个节点和下一个节点的指针,因此可以从头节点遍历到尾节点,也可以从尾节点遍历到头节点。这种双向遍历的灵活性使得在某些算法和操作中&a…

C# AutoMapper 10个常用方法总结

前言 AutoMapper 是一个强大的对象映射库,用于简化和自动化复杂对象之间的转换。 官网地址:AutoMapper 文档地址:AutoMapper — AutoMapper documentation AutoMapper是以.NET(C#)语言开发的一个轻量的处理一个实体对象到另一个实体对象之间…

论文分享 | FuzzLLM:一种用于发现大语言模型中越狱漏洞的通用模糊测试框架

大语言模型是当前人工智能领域的前沿研究方向,在安全性方面大语言模型存在一些挑战和问题。分享一篇发表于2024年ICASSP会议的论文FuzzLLM,它设计了一种模糊测试框架,利用模型的能力去测试模型对越狱攻击的防护水平。 论文摘要 大语言模型中…

ES分词环境实战

文章目录 安装下载1.1 下载镜像1.2 单节点启动 防火墙设置异常处理【1】iptable链路中断 参考文档 参加完2024年11月软考,对ES的分词进行考查,前期有【 Docker 环境下安装部署 Elasticsearch 和 kibana】和【 Docker 环境下为 Elasticsearch 安装IK 分…

在 CentOS 系统上直接安装 MongoDB 4.0.25

文章目录 步骤 1:配置 MongoDB 官方源步骤 2:安装 MongoDB步骤 3:启动 MongoDB 服务步骤 4:验证安装步骤 5:可选配置注意事项 以下是在 CentOS 系统上直接安装 MongoDB 4.0.25 的详细步骤: 步骤 1&#x…

Swift从0开始学习 并发性 day4

1. 异步函数和 async/await async 表示函数是异步的,可以执行一些耗时操作而不阻塞线程。await 用来等待异步操作的完成。它让代码看起来像是同步的,但实际上在异步执行。 func fetchData() async -> String {// 模拟网络请求return "Data fro…

说说数字化的误区

1.数字化是一把手工程 这是很多人的误区,觉得数字化要一把手参与,这样可以获得资源,权力,但是现实中这是不可能的 首先我们要明确,ceo是一把手,是负责战略的,而数字化是实实在在的战术层面的内…

MQ消息队列选型

选择合适的消息队列(Message Queue, MQ)对于构建高效、可靠、可扩展的分布式系统至关重要。以下是针对四种主流消息队列——Kafka、ActiveMQ、RabbitMQ和RocketMQ——的技术选型指南,帮助您根据项目需求做出最佳选择。 1. Kafka 适用场景&a…

基于Vue+SpringBoot的求职招聘平台

平台概述 本平台是一个高效、便捷的人才与职位匹配系统,旨在为求职者与招聘者提供一站式服务。平台内设三大核心角色:求职者、招聘者以及超级管理员,每个角色拥有独特的功能模块,确保用户能够轻松完成从信息获取到最终录用的整个…

什么是 C++ 中的初始化列表?它的作用是什么?

初始化列表是在构造函数的参数列表后面,用冒号开头,接着列出成员变量的初始化表达式。作用是在对象创建时,对成员变量进行初始化,特别是对const成员变量、引用成员变量和没有默认构造函数的成员对象,必须使用初始化列表…

谈谈Spring的常见基础概念

文章是对Spring一些基础的底层概念进行分析,后续再遇到这些问题的时候,可以采用这些步骤进行详细解释。 一.谈谈SpringIOC的理解,原理与实现? 总: 1.控制反转: (1)原来的对象是由使用者来进行控制,有了S…

openjudge_简单英文题_07:Shortest Path

题目 07:Shortest Path 总时间限制: 1000ms 内存限制: 65536kB 描述 There is a graph with N nodes. Given the length of each edge between the nodes. Find the shortest path from S to E. 输入 First line: three positive integer number N (N < 100), S (S < N…

NAT网络地址转换——Easy IP

NAT网络地址转换 Tip&#xff1a; EasylP没有地址池的概念,使用接口地址作为NAT转换的公有地址。EasylP适用于不具备固定公网IP地址的场景:如通过DHCP, PPPOE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。 本次实验模拟nat协议配置 AR1配置如下&…