Linux服务器稳运行:安全部署与排障
linux服务器
Linux服务器是企业、网站、应用系统和云计算环境中常见的核心基础设施。相比普通个人电脑,服务器更强调稳定性、安全性、可维护性和高性能。无论是搭建网站、部署数据库、运行后端服务,还是构建容器平台,Linux服务器都扮演着非常重要的角色。
一、Linux服务器的基本概念
Linux服务器是指运行Linux操作系统的服务器环境。常见的Linux发行版包括Ubuntu Server、Debian、CentOS Stream、Rocky Linux、AlmaLinux等。不同发行版在软件包管理、系统配置方式、社区支持方面略有差异,但核心原理基本一致。
Linux服务器通常通过SSH远程连接,管理员可以在本地电脑使用终端工具登录服务器,执行命令、安装软件、配置服务、查看日志和排查问题。
二、服务器初始化配置
拿到一台新的Linux服务器后,首先要进行基础配置,确保系统稳定、安全、便于管理。
1. 更新软件源
sudo apt update && sudo apt upgrade -y
或:
sudo dnf update -y
更新系统可以减少软件漏洞,提高系统兼容性。
2. 创建普通管理员用户
不建议长期使用root账户操作服务器。可以创建一个普通用户,并赋予sudo权限。
adduser admin
usermod -aG sudo admin
部分系统使用wheel组:
usermod -aG wheel admin
3. 配置SSH密钥登录
相比密码登录,SSH密钥更安全。可以在本地生成密钥:
ssh-keygen -t ed25519
然后将公钥上传到服务器:
ssh-copy-id admin@服务器IP
配置完成后,建议关闭root远程登录和密码登录,提高安全性。
三、防火墙与端口管理
服务器暴露在公网环境中,必须合理开放端口。常用工具包括UFW和firewalld。
Ubuntu/Debian使用UFW
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
CentOS/Rocky使用firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
常见端口说明:
| 端口 | 服务 |
|---|---|
| 22 | SSH远程登录 |
| 80 | HTTP网站访问 |
| 443 | HTTPS加密访问 |
| 3306 | MySQL数据库 |
| 5432 | PostgreSQL数据库 |
| 6379 | Redis缓存服务 |
数据库和缓存服务一般不建议直接暴露到公网,应限制访问来源。
四、部署Web服务
Linux服务器最常见的用途之一是部署网站或Web应用。可以使用Nginx、Apache等Web服务器软件。
安装Nginx
sudo apt install nginx -y
安装完成后,可以通过浏览器访问服务器IP查看默认页面。
配置站点目录
常见网站目录如下:
/var/www/html
也可以为不同网站创建独立目录:
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
配置Nginx虚拟主机
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
配置完成后检查语法并重新加载:
sudo nginx -t
sudo systemctl reload nginx
五、部署应用服务
现代Linux服务器常用于运行Node.js、Python、Java、PHP、Go等应用。部署方式可以根据项目需求选择。
例如Node.js项目可以使用PM2进行进程管理:
npm install -g pm2
pm2 start app.js
pm2 save
pm2 startup
Python项目可以使用Gunicorn、uWSGI等工具配合Nginx部署。Java项目可以使用Tomcat、Spring Boot或Docker方式部署。
如果应用需要长期稳定运行,建议使用systemd管理服务,确保进程异常退出后能够自动重启。
六、数据库与缓存配置
服务器部署中,数据库和缓存服务非常常见。MySQL、MariaDB、PostgreSQL常用于数据存储,Redis常用于缓存、队列和会话管理。
安装MySQL示例:
sudo apt install mysql-server -y
sudo mysql_secure_installation
安装Redis示例:
sudo apt install redis-server -y
为了安全,数据库服务应设置强密码,限制远程连接,并定期备份数据。
七、日志与监控
服务器运行过程中,日志是排查问题的重要依据。常用命令包括:
journalctl -xe
tail -f /var/log/nginx/error.log
tail -f /var/log/syslog
也可以安装监控工具,例如Prometheus、Grafana、Zabbix等,用于监控CPU、内存、磁盘、网络、服务状态等指标。
常用资源查看命令:
top
htop
free -h
df -h
du -sh *
这些命令可以帮助管理员快速判断服务器是否存在性能瓶颈。
八、备份与安全加固
服务器安全不能只依赖防火墙,还需要做好多方面防护。
建议措施包括:
- 使用SSH密钥登录;
- 禁止root远程登录;
- 修改默认SSH端口;
- 安装失败登录防护工具;
- 定期备份重要数据;
- 及时更新系统和软件;
- 合理配置防火墙;
- 避免数据库端口暴露公网;
- 使用强密码;
- 定期检查日志和异常进程。
数据备份可以采用本地备份、远程备份或云存储备份。对于网站、数据库、配置文件等关键数据,应建立稳定的备份机制。
九、常见问题排查思路
当服务器出现问题时,可以按照以下顺序排查:
- 服务器是否能ping通;
- SSH是否可以连接;
- 防火墙是否阻止访问;
- 服务是否正常运行;
- 端口是否监听;
- 应用日志是否有错误;
- 磁盘空间是否已满;
- 内存或CPU是否过载;
- 域名解析是否正确;
- Nginx或Apache配置是否正确。
例如查看端口监听状态:
ss -tulnp
查看服务状态:
systemctl status nginx
查看磁盘空间:
df -h
总结
Linux服务器是运行网站、应用、数据库和云服务的重要基础平台。学习Linux服务器管理,需要掌握系统初始化、SSH安全、防火墙配置、Web服务部署、应用运行、数据库管理、日志排查、监控备份等核心内容。只要掌握这些基础知识,就能较稳定地搭建和维护服务器环境,为业务系统提供可靠支撑。