一、源码编译安装:掌控软件的每一个细节

✅ 为什么用源码安装?

  • 获取最新版本(如 Nginx 1.25+)
  • 自定义模块(如编译 Nginx 时加入 --with-http_v3_module
  • 满足安全合规要求(禁用不必要功能)

🛠 编译通用流程(以 Nginx 为例)

# 1. 安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y pcre-devel zlib-devel openssl-devel

# 2. 下载源码
wget https://nginx.org/download/nginx-1.25.4.tar.gz
tar -zxvf nginx-1.25.4.tar.gz
cd nginx-1.25.4

# 3. 配置编译选项
./configure \
  --prefix=/usr/local/nginx \
  --sbin-path=/usr/local/nginx/sbin/nginx \
  --conf-path=/usr/local/nginx/conf/nginx.conf \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --pid-path=/var/run/nginx.pid \
  --lock-path=/var/run/nginx.lock \
  --with-http_ssl_module \
  --with-http_v2_module

# 4. 编译 & 安装
make -j$(nproc)
sudo make install

💡 最佳实践:将编译参数写入脚本,便于复现和审计。


二、自定义 systemd 服务:让源码软件“融入”系统

源码安装的软件不会自动注册为系统服务,需手动创建 .service 文件。

创建 Nginx 的 systemd 服务

# /etc/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启用服务

sudo systemctl daemon-reload
sudo systemctl enable --now nginx
sudo systemctl status nginx  # 验证状态

✅ 现在你可以像管理 httpd 一样管理 Nginx:systemctl start|stop|restart nginx


三、rsync 命令:高效、安全的远程同步利器

🔑 rsync 核心优势

  • 增量同步:只传差异部分,节省带宽
  • 保持属性:权限、时间戳、软链接等
  • 支持加密:通过 SSH 通道传输

📌 常用命令示例

场景 命令
本地同步 rsync -av /src/ /dest/
推送至远程 rsync -avz /data/ user@192.168.1.10:/backup/
拉取远程文件 rsync -avz user@192.168.1.10:/logs/ ./local_logs/
删除目标多余文件 rsync -av --delete /src/ /dest/
限速 10MB/s rsync -av --bwlimit=10000 /src/ /dest/

⚠️ 注意:源路径末尾的 / 很关键!

  • rsync -a /src /dest → 在 dest 下创建 src 目录
  • rsync -a /src/ /dest → 将 src 内容直接放入 dest

四、远程同步实战:构建自动化备份方案

目标:每天凌晨 2 点自动备份 Web 目录到备份服务器

步骤 1:配置 SSH 免密登录
# 在 Web 服务器上执行
ssh-keygen -t rsa -N ""
ssh-copy-id backup_user@192.168.1.20
步骤 2:编写备份脚本
# /opt/scripts/backup_web.sh
#!/bin/bash
SOURCE="/var/www/html"
DEST="backup_user@192.168.1.20:/backup/web_$(date +%Y%m%d)"
LOG="/var/log/backup.log"

rsync -avz --delete $SOURCE/ $DEST >> $LOG 2>&1
echo "Backup completed at $(date)" >> $LOG
步骤 3:添加定时任务
# crontab -e
0 2 * * * /opt/scripts/backup_web.sh

✅ 实现:无人值守、增量、可追溯的备份机制。


五、数据库服务介绍:选型与场景

数据库 类型 特点 适用场景
MySQL 关系型 成熟、生态好、支持事务 Web 应用、ERP、CRM
PostgreSQL 关系型 功能强大、支持 JSON/地理数据 GIS、金融、复杂查询
Redis NoSQL(内存) 超高性能、支持持久化 缓存、会话存储、排行榜
MongoDB NoSQL(文档) 灵活 Schema、水平扩展 日志、内容管理、IoT

📌 本文以 MySQL 8.0 为例进行部署。


六、部署 MySQL 数据库服务器(源码 or YUM?)

方案 A:YUM 快速部署(推荐生产环境)

# 添加官方仓库
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# 安装
sudo yum install -y mysql-server

# 启动
sudo systemctl enable --now mysqld

# 获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log

方案 B:源码编译(高级定制)

适用于需修改内核参数、集成特定存储引擎等场景(过程略,参考 Nginx 编译逻辑)


七、数据库基本操作:从登录到建表

1. 初始化安全设置

sudo mysql_secure_installation
# 按提示设置 root 密码、移除匿名用户等

2. 登录并创建应用数据库

-- 登录
mysql -u root -p

-- 创建数据库
CREATE DATABASE blog_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户并授权
CREATE USER 'blog_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON blog_db.* TO 'blog_user'@'%';
FLUSH PRIVILEGES;

3. 基础 SQL 操作

USE blog_db;

-- 创建文章表
CREATE TABLE posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入数据
INSERT INTO posts (title, content) VALUES ('Hello World', 'My first post!');

-- 查询
SELECT * FROM posts;

💡 安全建议:生产环境禁止使用 root 远程登录,应用使用最小权限账号。


八、邮件的收发:从 MTA 到客户端

邮件系统核心组件

组件 作用 常见软件
MTA(邮件传输代理) 发送/转发邮件 Postfix, Sendmail
MDA(邮件投递代理) 将邮件存入用户邮箱 Dovecot, Procmail
MUA(邮件用户代理) 用户收发邮件的客户端 Outlook, Thunderbird, mutt

📧 搭建简易邮件服务器(Postfix + Dovecot)

1. 安装
sudo yum install -y postfix dovecot
2. 配置 Postfix(/etc/postfix/main.cf)
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
3. 配置 Dovecot(启用 IMAP)
# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

# /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
4. 启动服务
sudo systemctl enable --now postfix dovecot
sudo firewall-cmd --permanent --add-service={smtp,imap}
sudo firewall-cmd --reload

5. 测试收发

# 发送测试邮件(本地)
echo "Test body" | mail -s "Test Subject" user1@example.com

# 查看邮件(登录 user1 账户)
ls ~/Maildir/new/

⚠️ 公网邮件注意

  • 需配置 SPF/DKIM/DMARC 防止被标记为垃圾邮件
  • 25 端口常被云厂商屏蔽,建议使用 587(Submission)端口 + TLS

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐