架设Linux服务器是企业IT基础设施建设的核心环节,其稳定性、安全性及可扩展性直接影响业务运行,本文将从准备工作、系统安装、基础配置、服务部署、安全加固及监控维护六个维度,详细拆解Linux服务器的完整架设流程,帮助读者从零构建符合生产环境需求的服务器。
架设前的准备工作
在动手安装前,需明确服务器用途(如Web服务、数据库、容器平台等)并完成软硬件规划。
硬件选型
根据业务负载选择硬件配置:
- CPU:常规应用选4-8核,高并发场景(如电商、直播)建议16核以上;
- 内存:基础服务(如Nginx+MySQL)至少8GB,数据库或虚拟化场景建议32GB+;
- 存储:系统盘使用SSD(至少500GB),数据盘根据需求配置HDD或SSD(数据库建议RAID 10提升IO性能);
- 网络:千兆网卡起步,高并发场景考虑万兆网卡及多网卡绑定;
- 冗余:电源、硬盘建议冗余配置,避免单点故障。
系统选择
Linux发行版需兼顾稳定性与生态支持,常见选择如下:
发行版 | 特点 | 适用场景 |
---|---|---|
Ubuntu Server | 社区活跃,软件包丰富,文档完善 | 开发测试、中小型Web服务 |
CentOS Stream | 企业级稳定性,RHEL兼容,长期支持 | 企业核心业务、金融系统 |
Debian | 极致稳定,软件包严格审核 | 长期运行的服务器(如数据库) |
Rocky Linux | CentOS停滞后社区替代方案,100% RHEL兼容 | 企业级迁移、传统运维环境 |
网络规划
- 为服务器分配静态IP(避免DHCP租约导致服务中断),配置网关、DNS;
- 规划端口映射(如外网80→内网8080),防火墙策略需提前开放必要端口(SSH、HTTP、HTTPS等)。
系统安装与初始化
以Ubuntu Server 22.04为例,安装流程如下:
- 制作启动盘:使用Rufus或balenaEtcher将ISO镜像写入U盘,设置为BIOS/UEFI第一启动项;
- 启动安装:选择“Install Ubuntu Server”,语言选“English”(避免中文编码问题),时区选“Asia/Shanghai”;
- 磁盘分区:采用LVM逻辑卷管理,便于后续扩容,分区建议如下(以100GB系统盘为例):
分区类型 | 大小 | 文件系统 | 用途说明 |
---|---|---|---|
/boot | 500MB | ext4 | 系统引导文件,独立分区防损坏 |
/(根分区) | 20GB | ext4 | 系统核心文件,预留足够空间 |
/home | 20GB | ext4 | 用户数据,独立分区便于重装系统 |
swap | 内存×2倍 | swap | 交换分区(内存≥16GB时可设为内存大小) |
/data | 剩余空间 | xfs/ext4 | 数据存储(如数据库、网站文件) |
- 用户配置:创建非root用户(如admin),加入sudo组,禁用root远程登录(提升安全性);
- 网络配置:静态IP设置(如192.168.1.100/24,网关192.168.1.1,DNS 8.8.8.8);
- 安装SSH:勾选“OpenSSH Server”,安装后可通过
ssh admin@192.168.1.100
远程连接。
基础系统配置
安装完成后,需进行基础优化以保障稳定运行。
系统更新
sudo apt update && sudo apt upgrade -y # 更新软件包列表并升级 sudo apt autoremove -y # 清理无用依赖
时区与时间同步
sudo timedatectl set-timezone Asia/Shanghai # 设置时区 sudo apt install ntp -y # 安装NTP服务同步时间 sudo systemctl enable ntp --now # 开机自启
防火墙配置
使用UFW(Uncomplicated Firewall)简化管理:
sudo ufw default deny incoming # 默认拒绝入站 sudo ufw default allow outgoing # 允许出站 sudo ufw allow ssh # 开放SSH端口(22) sudo ufw allow http https # 开放Web端口(80/443) sudo ufw enable # 启用防火墙(输入y确认)
SSH安全加固
编辑/etc/ssh/sshd_config
:
PermitRootLogin no # 禁用root远程登录 PasswordAuthentication no # 禁用密码登录(仅允许密钥) Port 22 # 修改SSH端口(如2222,避免默认端口扫描)
重启SSH服务:sudo systemctl restart sshd
。
核心服务部署
根据服务器用途安装所需服务,以常见的Web+数据库架构为例:
Web服务(Nginx)
sudo apt install nginx -y # 安装Nginx sudo systemctl enable nginx --now # 开机自启
测试访问:浏览器输入服务器IP,显示“Welcome to nginx!”即成功。
数据库服务(MySQL)
sudo apt install mysql-server -y # 安装MySQL sudo mysql_secure_installation # 安全配置(设置root密码、移除匿名用户等)
创建数据库和用户:
mysql -u root -p CREATE DATABASE webdb CHARACTER SET utf8mb4; CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON webdb.* TO 'webuser'@'localhost'; FLUSH PRIVILEGES;
部署静态网站
将网站文件(如index.html)上传至/var/www/html/
,配置Nginx虚拟主机:
server { listen 80; server_name example.com; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } }
重启Nginx:sudo systemctl reload nginx
。
安全加固策略
安全是服务器运维的核心,需从系统、服务、网络三层面加固。
系统安全
- 更新补丁:定期执行
sudo apt update && sudo apt upgrade -y
; - 禁用不必要服务:
systemctl list-unit-files --state=enabled
查看开机自启服务,关闭无用服务(如telnet、rsh); - 登录限制:使用
fail2ban
防暴力破解:sudo apt install fail2ban -y sudo cp /etc/fail2ban/jail.local /etc/fail2ban/jail.conf
编辑
/etc/fail2ban/jail.local
,添加SSH防护:[sshd] enabled = true port = 22 maxretry = 3 bantime = 3600
服务安全
- Nginx:配置
server_tokens off
隐藏版本号,限制上传目录执行权限(location ~* .php$ { deny all; }
); - MySQL:创建独立数据库用户(避免使用root),开启SSL连接,设置密码复杂度策略(
mysql -u root -p -e "SET GLOBAL validate_password.policy=STRONG;"
)。
数据备份
- 全量备份:每周使用
tar
打包系统关键目录:tar -czf /backup/system_$(date +%Y%m%d).tar.gz /etc /var/www/html
- 增量备份:使用
rsync
同步增量数据(如每日同步数据库):rsync -avz /var/lib/mysql/ /backup/mysql/incr_$(date +%Y%m%d)/
- 异地备份:将备份文件同步至云存储(如AWS S3)或远程服务器:
aws s3 sync /backup/ s3://your-backup-bucket/
监控与维护
资源监控
- 命令行工具:
top
(CPU/内存)、htop
(增强版top)、df -h
(磁盘空间)、free -m
(内存使用); - 专业监控:安装
Netdata
(实时监控面板):bash <(curl -Ss https://my-netdata.io/kickstart.sh)
访问
http://服务器IP:19999
查看CPU、网络、磁盘IO等实时指标。
日志管理
- 使用
logrotate
自动切割日志(默认配置已包含Nginx、MySQL日志); - 关键日志路径:
/var/log/nginx/
(Nginx访问/错误日志)、/var/log/mysql/
(MySQL日志)、/var/log/auth.log
(登录日志)。
相关问答FAQs
Q1:忘记Linux服务器root密码如何重置?
A:通过单用户模式重置:
- 重启服务器,进入GRUB菜单(开机时按ESC);
- 选择内核版本,按“e”编辑,找到“linux”行末尾,添加
init=/bin/bash
; - 按Ctrl+X启动,进入bash shell;
- 执行
mount -o remount,rw /
重新挂载根分区; - 使用
passwd root
修改密码,重启服务器(exec /sbin/init
)。
Q2:如何优化Linux服务器性能?
A:从资源、服务、系统三方面优化:
- 资源优化:关闭不必要的服务(
systemctl stop service
),调整内核参数(如/etc/sysctl.conf
中vm.swappiness=10
减少swap使用); - 服务优化:Nginx调整worker进程数(
worker_processes auto;
),MySQL调整缓冲区大小(innodb_buffer_pool_size=2G
); - 系统优化:使用SSD替换HDD,开启文件系统缓存(
noatime
挂载选项),定期清理临时文件(tmpwatch
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28170.html