

摘要: 从零开始学习服务器运维,涵盖 Nginx 配置、TCP 优化、SSL 证书、进程管理、日志分析和网络排查
运维就是让服务器稳定、安全、高效地运行。日常主要做这几件事:
ssh ubuntu@你的服务器IP
腾讯云 OrcaTerm 是网页终端,不需要本地装任何软件,浏览器直接登录服务器。支持会话保持、文件管理、命令录制等功能。
PM2 是 Node.js 应用的进程管理器,保证应用挂了能自动重启。
# 启动应用
pm2 start npm --name "myapp" -- start
# 查看状态
pm2 status
# 重启
pm2 restart myapp
# 查看日志
pm2 logs myapp
# 设置开机自启
pm2 startup
pm2 save
# 查看所有进程
ps aux
# 查看端口占用
ss -tlnp
# 查看某个端口
ss -tlnp | grep 3000
# 杀进程
kill -9 PID
Nginx 是一个高性能的 Web 服务器和反向代理。简单理解:它是「前台服务员」,接收用户请求,转交给后端的应用(如 Next.js)。
# 主配置
/etc/nginx/nginx.conf
# 站点配置
/etc/nginx/sites-enabled/你的站点名
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/to/cert.crt;
ssl_certificate_key /path/to/key.key;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
# 测试配置语法
sudo nginx -t
# 重载配置(不中断服务)
sudo nginx -s reload
# 重启
sudo systemctl restart nginx
# 查看错误日志
tail -f /var/log/nginx/error.log
# 查看访问日志
tail -f /var/log/nginx/access.log
| 配置 | 作用 | 建议值 |
|---|---|---|
keepalive_timeout | 保持连接时间 | 75s |
keepalive_requests | 单连接最大请求数 | 10000 |
proxy_buffering | 代理缓冲 | on |
proxy_read_timeout | 等待后端响应超时 | 120s |
sendfile | 高效文件传输 | on |
gzip | 压缩传输 | on |
编辑 /etc/sysctl.conf:
# 最大连接队列
net.core.somaxconn = 4096
# SYN 队列大小
net.ipv4.tcp_max_syn_backlog = 4096
# TCP Fast Open
net.ipv4.tcp_fastopen = 3
# 启用 BBR 拥塞控制
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
使配置生效:
sudo sysctl -p
# 连接统计
ss -s
# TCP 重传统计
netstat -s | grep retrans
# 当前连接
ss -tpn
# 证书文件(含完整链)
/etc/nginx/ssl/example.com_bundle.crt
# 私钥文件
/etc/nginx/ssl/example.com.key
# 查看证书信息
openssl x509 -in cert.crt -noout -dates -subject
# 测试 TLS 握手
echo | openssl s_client -connect example.com:443 -servername example.com
| 问题 | 原因 | 解决 |
|---|---|---|
ERR_CONNECTION_RESET | OCSP 服务器不可达 | 关闭 ssl_stapling |
| 证书链不完整 | 缺少中间证书 | 使用 bundle 文件 |
| 证书过期 | 到期了 | 续期或重新申请 |
# 系统日志
/var/log/syslog
# Nginx 日志
/var/log/nginx/access.log # 访问日志
/var/log/nginx/error.log # 错误日志
# PM2 日志
~/.pm2/logs/
# 查看最新 50 行
tail -50 /var/log/nginx/error.log
# 实时查看
tail -f /var/log/nginx/access.log
# 搜索特定内容
grep '502' /var/log/nginx/error.log
# 统计访问量
grep -c 'GET' /var/log/nginx/access.log
# 测试 HTTP
curl -I https://example.com
# 测试 TCP 端口
nc -zv example.com 443
# DNS 解析
dig example.com
# 路由追踪
traceroute example.com
| 错误 | 含义 | 排查方向 |
|---|---|---|
ERR_CONNECTION_RESET | 连接被重置 | TCP 队列、SSL、防火墙 |
502 Bad Gateway | 后端服务挂了 | 检查应用进程 |
504 Gateway Timeout | 后端响应超时 | 增加超时时间 |
DNS_PROBE_FINISHED_NXDOMAIN | 域名解析失败 | 检查 DNS 配置 |
# 编辑
sudo vim /etc/hosts
# 格式
IP地址 域名
# 例如
140.82.112.3 github.com
用于临时解决 DNS 解析问题或网络不可达的情况。
在腾讯云控制台 → Lighthouse → 防火墙中管理规则:
# 查看规则
sudo ufw status
# 允许端口
sudo ufw allow 443/tcp
# 启用
sudo ufw enable
# CPU 和内存
top
htop
# 磁盘
df -h
# 网络流量
iftop
# IO 状态
iostat
在控制台可以查看:
# Git 是最佳实践
git push origin master
# 备份 Nginx 配置
sudo cp /etc/nginx/sites-enabled/站点名 ~/backup/
# 备份数据库
pg_dump -U user dbname > backup.sql
腾讯云 Lighthouse 支持创建快照,可以快速恢复到某个时间点。
每天或每周检查以下项目:
pm2 status)df -h)free -h)tail /var/log/nginx/error.log)openssl x509 -dates)sudo apt update)运维的核心思想:
遇到问题不要慌,从底层到上层逐层排查:网络 → 系统 → 应用 → 代码。