Ubuntu服务器部署MySQL+Redis+Nginx及自动备份指南
1. 项目概述最近在帮朋友部署一套Web应用的基础环境需要在一台全新的Ubuntu服务器上搭建MySQL、Redis和Nginx服务并配置自动备份方案。这个看似简单的任务在实际操作中却有不少需要注意的细节和坑点。今天就把完整的部署流程和踩坑经验整理出来希望能帮到有同样需求的开发者。这套环境组合MySQL Redis Nginx是目前Web开发中最常见的基础架构之一。MySQL作为关系型数据库存储核心业务数据Redis作为高性能缓存提升系统响应速度Nginx则承担反向代理和负载均衡的角色。自动备份则是生产环境必不可少的保障措施。2. 环境准备2.1 系统要求推荐使用Ubuntu 20.04 LTS或22.04 LTS版本这两个版本都有长期支持软件包更新维护有保障。服务器配置建议最低配置1核CPU2GB内存20GB存储推荐配置2核CPU4GB内存50GB存储提示如果是生产环境建议将MySQL数据目录挂载到单独的磁盘分区避免系统盘写满影响服务。2.2 基础设置首先更新系统并安装常用工具sudo apt update sudo apt upgrade -y sudo apt install -y curl wget vim git unzip设置时区以Asia/Shanghai为例sudo timedatectl set-timezone Asia/Shanghai3. MySQL部署与配置3.1 安装MySQLUbuntu官方源中的MySQL版本可能不是最新的建议使用MySQL官方仓库wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb sudo apt update sudo apt install -y mysql-server安装过程中会提示设置root密码请务必设置一个强密码并妥善保管。3.2 安全配置运行安全脚本进行基础加固sudo mysql_secure_installation这个脚本会引导你完成以下操作设置root密码如果安装时未设置移除匿名用户禁止root远程登录移除测试数据库重新加载权限表3.3 性能调优编辑MySQL配置文件sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf根据服务器配置调整以下参数以4GB内存服务器为例[mysqld] innodb_buffer_pool_size 1G innodb_log_file_size 256M max_connections 200 query_cache_size 64M query_cache_type 1重启MySQL使配置生效sudo systemctl restart mysql4. Redis部署与配置4.1 安装RedisUbuntu官方源中的Redis版本通常较旧建议使用PPA安装最新稳定版sudo add-apt-repository ppa:redislabs/redis sudo apt update sudo apt install -y redis-server4.2 安全配置默认情况下Redis没有密码保护这非常危险。编辑配置文件sudo vim /etc/redis/redis.conf修改以下参数requirepass your_strong_password bind 127.0.0.1 protected-mode yes重启Redis服务sudo systemctl restart redis-server4.3 内存管理根据应用需求调整内存策略maxmemory 2gb maxmemory-policy allkeys-lru这表示当内存使用达到2GB时Redis会使用LRU算法淘汰最久未使用的键。5. Nginx部署与配置5.1 安装Nginxsudo apt install -y nginx5.2 基础配置编辑主配置文件sudo vim /etc/nginx/nginx.conf调整worker进程数通常设置为CPU核心数worker_processes auto;在events块中调整连接数events { worker_connections 1024; multi_accept on; }5.3 虚拟主机配置创建一个新的站点配置文件sudo vim /etc/nginx/sites-available/your_domain.conf基本配置模板server { listen 80; server_name your_domain.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /static/ { alias /path/to/static/files/; expires 30d; } }启用配置并测试sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx6. 自动备份方案6.1 MySQL备份创建备份脚本sudo vim /usr/local/bin/mysql_backup.sh脚本内容#!/bin/bash DATE$(date %Y%m%d%H%M) BACKUP_DIR/backup/mysql MYSQL_USERbackup_user MYSQL_PASSWORDyour_password mkdir -p $BACKUP_DIR mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --all-databases | gzip $BACKUP_DIR/mysql_$DATE.sql.gz # 删除7天前的备份 find $BACKUP_DIR -type f -name *.sql.gz -mtime 7 -delete创建专用备份用户CREATE USER backup_userlocalhost IDENTIFIED BY your_password; GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER, LOCK TABLES ON *.* TO backup_userlocalhost; FLUSH PRIVILEGES;6.2 Redis备份Redis默认会定期生成RDB快照我们只需确保配置正确save 900 1 save 300 10 save 60 10000 dbfilename dump.rdb dir /var/lib/redis也可以手动执行BGSAVEredis-cli -a your_password BGSAVE6.3 备份自动化使用cron定时执行备份sudo crontab -e添加以下内容每天凌晨3点执行MySQL备份0 3 * * * /usr/local/bin/mysql_backup.sh7. 安全加固7.1 防火墙配置sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw enable7.2 SSH安全编辑SSH配置文件sudo vim /etc/ssh/sshd_config修改以下参数Port 2222 PermitRootLogin no PasswordAuthentication no重启SSH服务sudo systemctl restart sshd8. 常见问题排查8.1 MySQL连接问题错误ERROR 1045 (28000): Access denied for user...解决方案检查用户名和密码是否正确确认用户是否有从指定IP访问的权限检查MySQL是否绑定了正确的网络接口8.2 Redis内存不足错误OOM command not allowed when used memory maxmemory解决方案增加maxmemory设置调整maxmemory-policy为更积极的淘汰策略检查是否有内存泄漏或大键值8.3 Nginx 502 Bad Gateway可能原因后端服务未运行代理配置错误权限问题排查步骤检查后端服务状态查看Nginx错误日志/var/log/nginx/error.log测试代理地址是否能正常访问9. 性能监控9.1 基础监控工具安装htop和net-toolssudo apt install -y htop net-tools9.2 MySQL监控查看连接数SHOW STATUS LIKE Threads_connected;查看慢查询SHOW VARIABLES LIKE slow_query_log;9.3 Redis监控使用info命令查看状态redis-cli -a your_password info重点关注used_memoryconnected_clientsinstantaneous_ops_per_sec10. 维护与更新10.1 定期更新每月执行一次系统更新sudo apt update sudo apt upgrade -y10.2 日志轮转配置日志轮转防止日志文件过大sudo vim /etc/logrotate.d/nginx示例配置/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate /usr/sbin/nginx -s reload endscript }这套环境搭建完成后基本上可以满足大多数中小型Web应用的需求。在实际使用中根据业务增长情况可能需要考虑主从复制、集群等高可用方案。

相关新闻

《RocketMQ 官网》阅读笔记 RocketMQ 生产者(Producer)

《RocketMQ 官网》阅读笔记 RocketMQ 生产者(Producer)

《RocketMQ 官网》阅读笔记 RocketMQ 生产者(Producer) 生产者 (Producer) 定义 Apache RocketMQ 中的生产者是一种功能性消息实体,用于创建消息并将其发送到服务器。 生产者通常集成在业务系统中,负责将数据封装为 Apache Rocket…

2026/7/27 16:44:25阅读更多 →
Llama3-8B LoRA微调模型评估与部署全流程

Llama3-8B LoRA微调模型评估与部署全流程

1. 项目背景与目标在完成Llama3-8B-Instruct模型的LoRA微调训练后,我们需要对微调后的模型进行全面评估和最终部署。这个过程就像汽车出厂前的质检环节——不仅要确保发动机运转正常,还要测试各项性能指标是否符合标准。本文将详细记录从模型评测到最终导…

2026/7/27 16:44:25阅读更多 →
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染

教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染

教程翻译:基于React Highcharts构建一个单页应用程序、按需数据拉取与图表渲染 本篇教程将手把手搭建一套简易React单页应用:程序从静态JSON文件读取数据,结合Highcharts React完成图表绘制。本方案用来模拟单页应用(SPA)场景下向后端服务请…

2026/7/27 16:44:25阅读更多 →
如何快速实现Web3D交互:Orillusion碰撞检测与拾取系统的完整指南

如何快速实现Web3D交互:Orillusion碰撞检测与拾取系统的完整指南

如何快速实现Web3D交互:Orillusion碰撞检测与拾取系统的完整指南 【免费下载链接】orillusion Orillusion is a pure Web3D rendering engine which is fully developed based on the WebGPU standard. 项目地址: https://gitcode.com/gh_mirrors/or/orillusion …

2026/7/27 18:02:36阅读更多 →
重新定义MacBook Touch Bar:Pock如何将闲置空间转化为高效工作区

重新定义MacBook Touch Bar:Pock如何将闲置空间转化为高效工作区

重新定义MacBook Touch Bar:Pock如何将闲置空间转化为高效工作区 【免费下载链接】pock Widgets manager for MacBook Touch Bar 项目地址: https://gitcode.com/gh_mirrors/po/pock 你是否曾盯着MacBook Touch Bar思考:这个狭长的触摸屏真的只能…

2026/7/27 18:02:36阅读更多 →
终极指南:用Path of Building PoE2构建计算器打造完美角色规划

终极指南:用Path of Building PoE2构建计算器打造完美角色规划

终极指南:用Path of Building PoE2构建计算器打造完美角色规划 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 你是否曾在《流放之路2》中花费数小时调整装备和天赋,结果发现构建…

2026/7/27 18:02:35阅读更多 →
Zappa.js版本迁移攻略:从0.2到0.3的平滑过渡技巧

Zappa.js版本迁移攻略:从0.2到0.3的平滑过渡技巧

Zappa.js版本迁移攻略:从0.2到0.3的平滑过渡技巧 【免费下载链接】zappa Node development for the lazy. 项目地址: https://gitcode.com/gh_mirrors/zapp/zappa Zappa.js作为一款面向Node.js开发者的高效开发框架,其0.3版本带来了多项重要改进。…

2026/7/27 18:02:35阅读更多 →
Random User-Agent开源贡献指南:如何参与代码开发与功能改进

Random User-Agent开源贡献指南:如何参与代码开发与功能改进

Random User-Agent开源贡献指南:如何参与代码开发与功能改进 【免费下载链接】random-user-agent 😎 Browser extension that automatically replaces the User-Agent with a randomized one 项目地址: https://gitcode.com/gh_mirrors/ran/random-use…

2026/7/27 18:02:35阅读更多 →
基于Vue3和Django的图书推荐系统设计与实现

基于Vue3和Django的图书推荐系统设计与实现

1. 项目概述这个图书智能推荐系统采用前后端分离架构,前端使用Vue3框架实现用户交互界面,后端基于Django框架构建推荐算法服务。核心功能是通过协同过滤算法分析用户历史行为数据,实现个性化图书推荐。系统包含完整的用户管理、图书管理、推荐…

2026/7/27 18:00:35阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/27 1:14:34阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/27 1:14:52阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/27 1:14:56阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:24阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:24阅读更多 →
2007-2023年各市区县生态文明建设示范区DID

2007-2023年各市区县生态文明建设示范区DID

数据简介 自改革开放以来,我国依赖高投入、高资源消耗和高污染等传统发展模式实现了经济短期内的快速增长, 然而这也导致了严重的生态环境危机。因此,国家有力于推动企业高质量经济发展,协同生态保护的方针,从而从201…

2026/7/27 0:00:24阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/26 19:05:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/26 19:05:21阅读更多 →