凌峰创科服务平台

Linux服务器配置与什么?关键步骤有哪些?

Linux服务器配置与优化是确保系统稳定、高效运行的核心工作,涉及从基础环境搭建到性能调优、安全加固等多个维度,以下从系统初始化、服务配置、性能优化、安全防护及监控维护五个方面展开详细说明。

系统初始化配置

服务器安装Linux系统后,首先需进行基础初始化,包括更新系统源:在CentOS系统中使用yum update -y,Ubuntu系统则通过apt update && apt upgrade -y确保软件包为最新版本,配置网络参数,编辑/etc/sysconfig/network-scripts/ifcfg-eth0(CentOS)或/etc/netplan/01-netcfg.yaml(Ubuntu),设置静态IP、子网掩码、网关及DNS,重启网络服务使配置生效,时区配置需执行timedatectl set-timezone Asia/Shanghai,并同步时间服务器:安装ntpdate工具后,使用ntpdate pool.ntp.org定时同步,或配置chrony服务实现自动同步,关闭不必要的服务:通过systemctl list-unit-files | grep enabled查看开机自启服务,使用systemctl stop/disable命令关闭如firewalld(若使用第三方防火墙)、postfix等服务,减少资源占用。

核心服务配置

Web服务(以Nginx为例)

安装Nginx:yum install nginx -y(CentOS)或apt install nginx -y(Ubuntu),配置虚拟主机:编辑/etc/nginx/conf.d/default.conf,定义server块,配置监听端口(如80)、根目录(/usr/share/nginx/html)、域名及日志路径,优化性能参数:在nginx.confevents模块中调整worker_connections(如1024),在http模块中启用gzip压缩、配置keepalive_timeout(如65)及连接池参数,启动服务并设置开机自启:systemctl start nginx && systemctl enable nginx

数据库服务(以MySQL为例)

安装MySQL:CentOS使用yum localinstall mysql-community-release-el7-7.noarch.rpm -y后安装mysql-community-server,Ubuntu通过apt install mysql-server -y,安全初始化:执行mysql_secure_installation脚本,设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库及权限刷新,配置性能:编辑/etc/my.cnf,调整innodb_buffer_pool_size(建议为物理内存的50%-70%)、max_connections(根据并发量设置,如200)、query_cache_type(建议关闭),创建数据库及用户:登录MySQL后执行CREATE DATABASE db_name;GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'localhost' IDENTIFIED BY 'password';,刷新权限。

FTP服务(以vsftpd为例)

安装vsftpd:yum install vsftpd -y,配置匿名用户:编辑/etc/vsftpd/vsftpd.conf,设置anonymous_enable=NO关闭匿名登录,local_enable=YES允许本地用户,write_enable=YES启用写入,限制用户访问:在/etc/vsftpd/chroot_list中添加禁止切换目录的用户,配置chroot_local_user=YES,重启服务:systemctl restart vsftpd

性能优化

内核参数调优

编辑/etc/sysctl.conf,添加以下参数优化网络和文件系统:

  • net.core.rmem_max = 16777216(最大接收缓冲区)
  • net.core.wmem_max = 16777216(最大发送缓冲区)
  • fs.file-max = 100000(最大文件句柄数)
  • vm.swappiness = 10(减少交换空间使用)
    执行sysctl -p使配置生效。

磁盘I/O优化

使用hdparm -Tt /dev/sda测试磁盘性能,若性能较低可调整/etc/sysctl.conf中的vm.dirty_ratio(如60)和vm.dirty_background_ratio(如2),控制脏页写入比例,对于SSD,启用noatime挂载选项:编辑/etc/fstab,将挂载参数中的defaults改为defaults,noatime,减少磁盘写入。

资源限制

通过/etc/security/limits.conf限制用户资源,

  • * soft nofile 65535
  • * hard nofile 65535
  • * soft nproc 32768
  • * hard nproc 32768
    防止用户进程过多导致系统资源耗尽。

安全防护

防火墙配置

使用firewalld(CentOS)或ufw(Ubuntu)配置规则。

  • 开放SSH端口:firewall-cmd --permanent --add-service=ssh
  • 开放Web端口:firewall-cmd --permanent --add-port=80/tcp
  • 禁用ICMP:firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" reject'
    重启防火墙:firewall-cmd --reload

SSH安全加固

编辑/etc/ssh/sshd_config,修改以下参数:

  • Port 2222(更改默认端口)
  • PermitRootLogin no(禁止root登录)
  • PasswordAuthentication no(禁用密码,使用密钥认证)
  • MaxAuthTries 3(限制认证尝试次数)
    重启SSH服务:systemctl restart sshd

入侵检测

安装fail2banyum install fail2ban -y,编辑/etc/fail2ban/jail.local,配置SSH防护:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600

启动服务:systemctl enable fail2ban --now

监控与维护

系统监控

安装tophtopnethogs等工具实时查看进程、网络流量,使用crontab定时执行监控脚本,例如每5分钟记录CPU使用率到日志文件:

*/5 * * * * /usr/bin/top -bn1 | grep "Cpu(s)" | awk '{print $2+$4}' >> /var/log/cpu_usage.log

日志管理

配置logrotate自动切割日志:编辑/etc/logrotate.conf,设置日志轮转周期(如每周)、保留数量(如4周)及压缩选项,例如Nginx日志配置:

/var/log/nginx/*.log {
    weekly
    missingok
    rotate 4
    compress
    delaycompress
    notifempty
    create 644 nginx nginx
}

备份策略

使用rsync实现文件增量备份,例如每天凌晨2点备份/var/www目录到远程服务器:

0 2 * * * /usr/bin/rsync -avz --delete /var/www/ user@remote_ip:/backup/www/

数据库备份可通过mysqldump定时执行,例如每天备份MySQL数据库并压缩存储:

0 3 * * * /usr/bin/mysqldump -u root -p'password' db_name | gzip > /backup/mysql/db_name_$(date +%Y%m%d).sql.gz

相关问答FAQs

问题1:如何解决Linux服务器CPU占用率过高的问题?
解答:首先使用tophtop命令找到占用CPU最高的进程,记录其PID,若为异常进程,可通过kill -9 PID强制终止,若为正常服务(如数据库),检查是否有慢查询或连接数过多,可通过mysqldumpslow分析MySQL慢查询日志,优化SQL语句或调整max_connections参数,检查系统是否感染挖矿病毒,使用ps aux --forest查看进程树,结合chkrootkitclamav进行病毒扫描。

问题2:Linux服务器磁盘空间不足时如何排查和处理?
解答:使用df -h查看各分区使用情况,定位占用空间过高的分区,通过du -sh /*逐级排查目录,找出大文件或日志目录(如/var/log),对于日志文件,使用logrotate轮转或手动清理;对于临时文件,定期清理/tmp目录(rm -rf /tmp/*),若为数据库文件占用过大,可优化表结构或归档历史数据,必要时扩容磁盘,可通过fdisk分区、mkfs格式化后挂载新分区,或使用LVM逻辑卷管理动态扩容。

分享:
扫描分享到社交APP
上一篇
下一篇