Ubantu下的几个常用部署

简介: 在Ubuntu系统中设置本地Redis的密码涉及几个步骤,主要是编辑Redis的配置文件,并重启Redis服务以应用更改。4、在宿主机连接redis 根据以上步骤安装启动redis后,默认只能在虚拟机内访问redis,如果在其他机器上访问,需要修改配置文件。在终端输入redis-cli,会进入到redis的命令行模式,这时候就可以愉快地使用redis的各种命令了。默认情况下,redis的配置文件在/etc/redis/redis.conf,打开这个文件,将下面内容修改。默认情况下,这一行是被注释掉的。

1.Ubantu部署MySQL8

ubantu使用apt:

apt update;
apt install mysql-server

image.gif

进入MSQL并登录

mysql -u root -p

image.gif

修改mysq8认证策略同时设置密码且设置允许登录的用户为所有用户

UPDATE mysql.user SET host='%' WHERE user='root' AND host='localhost';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
FLUSH PRIVILEGES;

image.gif

%指的就是任何ip主机都能使用root登录 修改策略成功后再使用如下命令查看:

use mysql
select user,plugin from user where user='root' ;

image.gif

此时密码策略已经修改成功

设置root用户能在任何远程主机上连接数据库的任何表 能进行任何操作(默认是只允许当前localhost连接)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

image.gif

找到/etc/mysql/mysql.conf.d/mysqld.cnf 这个配置文件里写了mysql的基本设置,我们找到如下一行并注释掉:

# bind-address=127.0.0.1

image.gif

重启mysql服务

sudo systemctl start mysql

image.gif

这样就能用可视化工具远程连接mysql了

image.gif 编辑

如果无法正常连接尝试关防火墙或者配置端口开放

关闭防火墙:

要临时关闭防火墙,可以使用以下命令:

sudo ufw disable

image.gif

2.Ubantu部署Redis

只需要在终端依次输入以下命令,如果过程中没有错误提示,则redis安装完成。

sudo apt install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "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.list
sudo apt-get update
sudo apt-get install redis

image.gif

2.1 使用redis

在终端输入redis-cli,会进入到redis的命令行模式,这时候就可以愉快地使用redis的各种命令了。

输入exit退出redis-cli。

image.gif 编辑

2.2 启动/关闭redis

启动方式一

/etc/init.d/redis-server start

image.gif

启动方式二

systemctl start redis-server

image.gif

启动方式三

service redis-server start

image.gif

重启redis

service redis-server restart

image.gif

关闭redis

service redis-server stop

image.gif

查看redis状态

service redis-server status

image.gif

在宿主机连接redis 根据以上步骤安装启动redis后,默认只能在虚拟机内访问redis,如果在其他机器上访问,需要修改配置文件。

默认情况下,redis的配置文件在/etc/redis/redis.conf,打开这个文件,将下面内容修改

bind 127.0.0.1 -::1

bind 0.0.0.0

image.gif

到redis.conf下搜索一下这个设置,果然找到了,先把这个设置yes改成no

image.gif 编辑

然后重启一下redis

service redis-server restart

image.gif

成功开放端口后可以使用远程工具去连接Redis

在Ubuntu系统中设置本地Redis的密码涉及几个步骤,主要是编辑Redis的配置文件,并重启Redis服务以应用更改。以下是详细的步骤:

步骤 1: 编辑Redis配置文件

打开Redis配置文件:

Redis的配置文件通常位于/etc/redis/redis.conf。使用文本编辑器打开这个文件:

bash浅色版本

sudo vim /etc/redis/redis.conf

image.gif

  1. 设置密码:
  2. 在配置文件中找到以下行:
    conf浅色版本
# requirepass foobared
  1. image.gif 默认情况下,这一行是被注释掉的。你需要取消注释并设置自己的密码。例如:
    conf浅色版本
requirepass your_secure_password
  1. image.gif your_secure_password替换为你选择的密码。请确保密码足够复杂,以增强安全性。

步骤 2: 重启Redis服务

编辑完配置文件后,需要重启Redis服务以使更改生效:

bash浅色版本

sudo systemctl restart redis

image.gif

步骤 3: 验证配置

  1. 检查Redis服务状态:
    确认Redis服务是否已成功重启并运行:
    bash浅色版本
sudo systemctl status redis
  1. image.gif
  2. 使用新密码连接Redis:
    尝试使用Redis命令行客户端连接,并使用新设置的密码:
    bash浅色版本
redis-cli
  1. image.gif 输入命令后,你会看到Redis命令行界面。此时,你需要使用auth命令来验证密码:
    redis浅色版本
auth your_secure_password
  1. image.gif 如果密码正确,Redis会回复OK,之后你可以正常使用Redis命令。

4.JDK环境

第一步:查找jdk版本

apt-cache search openjdk

image.gif

第二步:执行安装命令:

sudo apt-get install openjdk-17-jdk

image.gif

第五步:配置环境变量,添加以下命令

sudo vim /etc/profile
export JAVA_HOME=/usr/local/jdk17
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
java -version 测试

image.gif

TomCat环境

单体架构可以暂时不需要部署TomCat

5.部署后端

将后端项目打成jar包

将jar包上传到用户所对应的路径上,用Java命令运行jar包

启动jar包
nohup java -jar 包名.jar &
 
查询springboot进程
ps -ef|grep java

image.gif

6.Ubantu的前端部署

6.1 Nginx的安装配置

安装

apt install nginx-core

image.gif

查看版本:

nginx -v

image.gif

安装路径:

whereis nginx

image.gif

启动nginx

service nginx start

image.gif

启动成功后,在浏览器输入ip地址(默认端口号是80),即可看到nginx的欢迎页面

image.gif 编辑

查看nginx的进程

ps -ef |grep nginx

image.gif

停服务:

kill -9 2323

image.gif

或者

service nginx stop

image.gif

卸载nginx

apt-get --purge autoremove nginx

image.gif

重新加载命令

sudo systemctl reload nginx
sudo service nginx reload

image.gif

关闭防火墙

要临时关闭防火墙,可以使用以下命令:

sudo ufw disable

image.gif

6.2 Nginx部署项目

在前端代码目录下执行npm run build指令,生成dist文件夹,并重命名为qwq

将qwq文件夹上传到服务器 /usr/share/nginx/html文件路径下

创建 /etc/nginx/conf.d/qwq.conf,并在文件中编写如下配置:

server {
    listen       80;
    server_name  121.40.147.57;
    # 前端静态资源
    location / {
        root   /usr/share/nginx/html/qwq;
        index  index.html;
        try_files $uri $uri/ /index.html;
    }
    # 后端接口代理(关键配置)
    location /web/ {
        # 代理到后端服务(注意结尾的斜杠,确保路径正确拼接)
        proxy_pass http://127.0.0.1:8080/web/;
        
        # 解决CORS跨域(必须添加)
        add_header Access-Control-Allow-Origin "http://121.40.147.57" always;
        add_header Access-Control-Allow-Credentials "true" always;
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
        add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
        
        # 处理预检请求(OPTIONS)
        if ($request_method = OPTIONS) {
            return 204;
        }
        
        # 代理头配置
        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;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

image.gif

另一个实例:

server {
    listen 80;
    server_name 112.124.13.250;
    charset utf-8;
    ## 前端静态资源
    location / {
        root /usr/share/nginx/html/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
        
        # 静态资源缓存
        expires 1d;
        add_header Cache-Control "public, max-age=86400";
    }
    ## 后端API代理
    location /prod-api/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:8080/;
        
        # 代理超时设置
        proxy_connect_timeout 60s;
        proxy_read_timeout 60s;
        proxy_send_timeout 60s;
    }
    ## 错误页面
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

image.gif

执行以下命令重新加载配置文件:

systemctl reload nginx

image.gif

补充:如果TS类型异常影响打包,则修改package.json中build脚本,跳过类型检查

{
  "scripts": {
    // 去掉 vue-tsc 类型检查步骤,直接执行 vite build
    "build": "vite build"
  }
}

image.gif

7.Redis-Stack部署

一、完整安装步骤

1. 清理无效残留(避免之前操作干扰)

# 若之前手动下载过无效压缩包,可删除(可选)
rm -f redis-stack-server-*.tar.gz
# 清理 apt 缓存(避免源配置冲突)
sudo apt clean && sudo apt update -y

image.gif

2. 重新添加 Redis 官方源(确保配置正确)

# 1. 安装必要工具(若未安装)
sudo apt install -y curl gpg lsb-release
# 2. 添加 Redis 官方 GPG 密钥(验证包完整性,关键步骤)
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
# 3. 添加 Redis 官方源到 Ubuntu 源列表(适配 jammy 版本)
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb jammy main" | sudo tee /etc/apt/sources.list.d/redis.list

image.gif

3. 安装 Redis Stack Server

# 1. 更新源索引(让系统识别新添加的 Redis 源)
sudo apt update -y
# 2. 安装 Redis Stack Server(自动处理依赖)
sudo apt install -y redis-stack-server

image.gif

  • 安装过程中若提示 “是否继续”,直接按 Enter 确认即可(-y 参数已自动处理)。

二、验证安装与启动

     1. 查看服务状态(核心验证)

sudo systemctl status redis-stack-server

image.gif

  • 成功标志:输出中显示 Active: active (running),说明服务已正常启动。
  • 若显示inactive (dead),执行以下命令手动启动:
sudo systemctl start redis-stack-server
  • image.gif 2.设置 redis-stack-server 开机自启
sudo systemctl enable redis-stack-server
  • image.gif 执行该命令后,redis-stack-server 服务会在系统启动时自动启动。
    如果需要验证是否成功设置了开机自启,可以使用以下命令查看服务的启用状态:
sudo systemctl is-enabled redis-stack-server
  • image.gif 如果输出 enabled,则表示已成功设置开机自启。
  • 密码等相关配置后续再考虑。。。。
相关文章
|
11天前
|
存储 SQL 关系型数据库
深入MySQL底层1-存储引擎与索引
MySQL体系结构分为连接层、服务层、引擎层和存储层,其中引擎层采用插件式架构,支持多种存储引擎。InnoDB是默认引擎,支持事务、行锁和外键,其数据以B+树结构存储;MyISAM适合读多写少场景;Memory引擎将数据存于内存。索引是提高查询效率的关键数据结构,主要包括B+树和Hash两种结构,B+树适合范围查询,Hash适合等值查询。合理使用索引需遵循最左前缀法则,避免索引失效情况,并考虑覆盖索引、前缀索引和联合索引的应用。索引设计原则包括:选择高区分度列、控制索引数量、优先使用联合索引等,以平衡查询性
|
11天前
|
安全 Linux API
OpenClaw无法联网?一键安装搜索Skill+阿里云/本地部署+千问/Coding Plan配置完整指南
很多用户在部署完OpenClaw(Clawdbot)后都会遇到一个共同问题:**无法联网搜索资料**,让它查询信息、获取新闻、总结网页时,只会回复“做不到”。这并不是OpenClaw不支持联网,而是默认内置的Brave Search、Gemini、Kimi、Perplexity等搜索方式,在国内环境无法直接使用,要么需要API Key,要么访问受限,要么需要付费。
1498 2
|
JavaScript
Vue打包后页面出现空白解决办法(臻享版)
1. 命令行输入:**npm run build** 打包出来后项目中就会多了一个文件夹dist,这就是我们打包过后的项目。
2173 1
|
10天前
|
人工智能 自然语言处理 Java
大模型应用开发5-SpringAIalibaba实战
本文介绍了SpringAIAlibaba开源项目,该项目基于SpringAI构建,为阿里云通义系列模型提供Java开发实践。主要内容包括: 基础使用:配置模型API、依赖引入、调用示例,支持同步和流式调用; 多种集成方式:对接本地Ollama模型、ChatClient高级API、SSE流式输出; 核心功能实现:提示词模板、结构化输出、持久化内存、文本生成图片/语音; 高级能力:向量数据库、RAG增强检索、工具调用(Tool Calling); MCP协议:标准化工具调用方案,实现服务端工具共享;
|
10天前
|
存储 人工智能 NoSQL
大模型应用开发3-LangChain4j实战
本文介绍了LangChain4j框架的使用方法,主要包括以下内容:1. 基础配置:创建SpringBoot项目并配置OpenAI聊天模型;2. AIServices工具类:简化模型调用,支持流式和阻塞式两种调用方式;3. 会话记忆功能:实现多轮对话记忆,支持会话隔离和Redis持久化存储;4. RAG检索增强:通过向量数据库存储和检索专业领域知识,提升大模型回答质量;5. Tools工具:通过Function Calling机制实现业务功能调用。文章详细讲解了每个功能的实现步骤,包括代码示例和配置方法,帮助
|
10天前
|
机器学习/深度学习 存储 人工智能
大模型应用开发1-认识大模型
摘要: 本文系统介绍了大模型的基础概念、本地部署及API调用方法。首先阐述了AI及神经网络的基本原理,重点解析了Transformer架构及其在大语言模型(LLM)中的应用。其次详细对比了三种模型使用方案(开放API/云部署/本地部署)的优缺点,并以Ollama为例演示了本地部署流程,包括模型管理、交互指令和GPU加速配置。最后说明了大模型API调用规范,列举了主流大模型产品及其应用场景,强调大模型在自然语言处理、内容生成等领域的优势,以及与传统编程结合开发智能应用的可能性。全文涵盖技术原理到实践操作,为大
|
10天前
|
存储 监控 前端开发
大文件上传下载处理方案-断点续传,秒传,分片,合并
本文介绍了大文件上传下载的断点续传技术方案。上传方面,通过前端将大文件分块(如5MB/块),后端使用MinIO存储分块并合并,实现断点续传和秒传功能。下载方面,采用Range请求分片下载,前端合并分片触发下载。技术要点包括:1)前端分块计算MD5;2)后端MinIO存储管理;3)分片校验与合并;4)进度监控和异常处理。该方案解决了大文件传输中断问题,提升用户体验,适用于视频等大文件传输场景,完整代码示例包含前后端实现。
|
11天前
|
运维 负载均衡 Java
微服务基础1-微服务拆分与服务调用
文章摘要: 本文详细介绍了微服务架构的概念、优势及实现方式。对比单体架构的局限性,微服务通过拆分功能模块实现高内聚、低耦合,提升系统可用性和开发效率。重点讲解了微服务拆分策略(纵向按功能、横向抽通用)、服务注册与发现机制(基于Nacos),以及远程调用方案(RestTemplate和OpenFeign)。OpenFeign通过动态代理简化RPC调用,支持连接池和日志配置,使远程调用如同本地方法。文章还探讨了微服务拆分时机(初创期验证后或大型项目初期直接采用),为不同规模团队提供架构演进建议。
|
11天前
|
JSON 自然语言处理 数据库
详解ElasticSearch1-基础使用
摘要:本文探讨了数据库模糊搜索的局限性及Elasticsearch(ES)的优势。数据库模糊查询存在性能低、功能单一等问题,而ES通过倒排索引技术实现高效搜索,支持复杂查询需求。文章详细介绍了ES的核心概念、安装部署、索引库操作(CRUD)、文档管理及Java API集成方法,并对比了ES与MySQL的适用场景。最后演示了批量导入文档的实践方案,为海量数据搜索场景提供了专业解决方案。(149字)

热门文章

最新文章