Linux 网络服务部署与优化

2次阅读

linux网络服务部署与优化需聚焦稳定、安全、可维护、可扩展,核心是理清服务角色、流量路径、资源边界和故障响应逻辑;web服务应走反向代理,后端绑定内网地址或unix socket,数据库等禁用0.0.0.0监听,iptables/nftables默认drop,ssh禁root登录并启用密钥认证与fail2ban;需调优内核参数如somaxconn、tcp_tw_reuse、tcp_delayed_ack及文件描述符限制;systemd应设memorymax、cpuquota等资源约束,nginx/apache需限worker数与连接超时,数据库启用连接池并限最大连接;日志须轮转并推送至集中平台;监控须覆盖cpu负载、内存可用量、网络重传、time_wait数、磁盘io等待,结合journalctl与access_log中$request_time定位慢请求,配置健康检查脚本实现自动告警或重启。

Linux 网络服务部署与优化

Linux 网络服务部署与优化,核心在于稳定、安全、可维护、可扩展。不是配置,而是理清服务角色、流量路径、资源边界和故障响应逻辑。

明确服务定位与最小化暴露面

部署前先回答:这个服务对外提供什么协议?谁需要访问?是否必须公网可达?

  • Web 服务优先走反向代理(如 Nginx),后端应用监听 127.0.0.1 或内网地址,不直接暴露端口
  • 数据库、缓存等内部服务禁用 0.0.0.0 监听,绑定到具体内网 IP 或 Unix socket
  • iptablesnftables 默认 DROP,仅放行必要端口和来源 IP 段
  • 禁用 root 远程登录,SSH 改非标端口 + 密钥认证 + fail2ban

合理配置系统级网络参数

默认内核参数适合通用场景,高并发或低延迟服务需针对性调优:

  • 调整连接队列:net.core.somaxconn(如设为 65535)防止 SYN 队列溢出
  • 复用 TIME_WAIT 套接字:net.ipv4.tcp_tw_reuse = 1(客户端主动发起连接时有效)
  • 关闭延迟确认:net.ipv4.tcp_delayed_ack = 0(对 rpc/微服务类低延迟场景有帮助)
  • 增大文件描述符限制:修改 /etc/security/limits.conf 和 systemd 的 LimitNOFILE

服务进程级资源与行为控制

避免单个服务吃光系统资源或因异常拖垮整机:

  • 用 systemd 启动服务时设置 MemoryMaxCPUQuotaRestartSecStartLimitIntervalSec
  • Nginx/Apache 配置中限制 worker 进程数、每个 worker 的连接数、超时时间(keepalive_timeoutclient_body_timeout
  • 数据库服务启用连接池,限制最大连接数;应用层也要配连接超时和重试退避
  • 日志轮转必须开启(logrotate),避免填满根分区;关键服务日志建议异步推送至集中平台

监控、日志与快速响应闭环

没有可观测性,优化就是盲调:

  • 基础指标必看:CPU load、内存使用率(尤其 cached vs available)、网络丢包率(ss -i 查看重传)、TIME_WAIT 数量、磁盘 I/O 等待
  • systemd-journalrsyslog 收集服务启动/崩溃日志,配合 journalctl -u nginx --since "2 hours ago" 快速定位
  • http 服务加 access_log 格式含 $request_time$upstream_response_time,识别慢请求源头
  • 部署轻量级健康检查脚本(如检测端口通、返回码、关键接口响应时间),失败自动告警或触发重启
text=ZqhQzanResources