Linux作为开源操作系统,凭借其稳定性、安全性和灵活性,成为搭建服务器的首选系统之一,以下是Linux服务器配置的详细步骤,从基础环境到服务部署,涵盖关键环节和注意事项。

基础环境准备
系统安装与初始化
选择适合服务器的Linux发行版,如CentOS(企业级稳定)、Ubuntu Server(社区活跃,文档丰富)或Debian,安装时注意以下配置:
- 磁盘分区:建议采用LVM(逻辑卷管理),便于动态扩容;分区至少包含
/boot(200-500MB,主分区)、(剩余空间,根分区)、swap(内存的1-2倍,若内存≥8GB可设为2GB)。 - 网络配置:静态IP地址(避免重启后变更),配置
/etc/sysconfig/network-scripts/ifcfg-eth0(CentOS)或/etc/netplan/01-netcfg.yaml(Ubuntu),确保DNS、网关正确。 - 更新系统:安装完成后执行
yum update(CentOS)或apt update && apt upgrade(Ubuntu),修复已知漏洞并升级软件包。
安全基础配置
- 防火墙:启用
firewalld(CentOS)或ufw(Ubuntu),仅开放必要端口(如SSH 22、HTTP 80)。# CentOS示例 systemctl start firewalld firewall-cmd --permanent --add-service=ssh firewall-cmd --reload
- SSH安全:修改默认端口(如改为2222),禁用root登录(通过普通用户sudo提权),配置密钥认证(禁用密码登录),编辑
/etc/ssh/sshd_config,设置PermitRootLogin no、PasswordAuthentication no,重启SSH服务:systemctl restart sshd。 - 用户管理:创建独立管理员用户(如
admin),加入wheel组(CentOS)或sudo组(Ubuntu),避免直接使用root操作。
核心服务配置
Web服务(以Nginx为例)
Nginx作为高性能反向代理服务器,适合部署静态网站或负载均衡。
- 安装:
# CentOS yum install -y epel-release && yum install -y nginx # Ubuntu apt update && apt install -y nginx
- 配置虚拟主机:编辑
/etc/nginx/conf.d/default.conf,定义域名、根目录、日志路径:server { listen 80; server_name example.com; root /var/www/html; index index.html; access_log /var/log/nginx/example_access.log; error_log /var/log/nginx/example_error.log; } - 启动与自启:
systemctl start nginx && systemctl enable nginx,检查配置语法:nginx -t。
数据库服务(以MySQL为例)
MySQL是常用的关系型数据库,需注意权限与性能优化。
- 安装:
# CentOS yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm yum install -y mysql-community-server # Ubuntu apt update && apt install -y mysql-server
- 安全初始化:执行
mysql_secure_installation,设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库、刷新权限。 - 用户授权:创建应用数据库及用户,如:
CREATE DATABASE app_db; CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost'; FLUSH PRIVILEGES;
FTP服务(以vsftpd为例)
用于文件上传下载,需限制用户访问目录。

- 安装:
yum install -y vsftpd(CentOS)或apt install -y vsftpd(Ubuntu)。 - 配置:编辑
/etc/vsftpd/vsftpd.conf,启用匿名用户禁止(anonymous_enable=NO)、限制本地用户访问目录(chroot_local_user=YES)、配置允许的用户列表(userlist_enable=YES,userlist_file=/etc/vsftpd/user_list)。 - 创建FTP用户:
useradd -d /home/ftpuser -s /sbin/nologin ftpuser,设置密码:passwd ftpuser,将用户加入user_list文件。 - 启动服务:
systemctl start vsftpd && systemctl enable vsftpd。
性能优化与监控
系统优化
- 内核参数:编辑
/etc/sysctl.conf,优化TCP连接、文件句柄数:fs.file-max = 65535 net.ipv4.tcp_max_syn_backlog = 4096 net.core.netdev_max_backlog = 10000
执行
sysctl -p生效。 - 资源限制:通过
/etc/security/limits.conf限制用户最大进程数和文件打开数,避免资源耗尽。
监控工具
- 基础监控:使用
top、htop(需安装)、free、df -h查看资源占用;iostat(安装sysstat)监控磁盘I/O。 - 日志管理:通过
rsyslog集中收集日志,或使用logrotate自动切割日志(配置/etc/logrotate.conf)。
备份与恢复
定期备份是服务器运维的核心。
- 文件备份:使用
rsync增量备份,例如每日备份/var/www到远程服务器:rsync -avz --delete /var/www/ user@backup_server:/backup/www/
- 数据库备份:使用
mysqldump全量备份,配合定时任务(cron)每日执行:0 2 * * * mysqldump -u root -pPassword app_db > /backup/db_$(date +\%F).sql
- 定时任务:编辑
crontab -e,设置备份脚本定时执行,并记录日志。
相关问答FAQs
Q1:Linux服务器如何禁止IP访问?
A:可通过防火墙实现,在CentOS中使用firewalld禁止恶意IP:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' firewall-cmd --reload
或在Ubuntu中使用ufw:

ufw deny from 192.168.1.100
Q2:Nginx 502错误如何排查?
A:502错误通常与后端服务(如PHP-FPM、Tomcat)异常或资源不足有关,排查步骤:
- 检查Nginx错误日志(
/var/log/nginx/error_log),定位具体错误信息; - 确认后端服务是否运行,如
systemctl status php-fpm; - 检查
proxy_pass配置的后端地址是否正确,以及连接超时时间(proxy_connect_timeout)是否合理; - 查看服务器资源(内存、CPU),若资源不足需优化或扩容。
