给你一些背景信息
我最近买了一台 Linode 服务器,并在其上配置了 ubuntu 10.10 64 位。该服务器将开始每秒收到大约 500 个请求,并且将持续处于负载状态。该服务器的主要用途是作为 nginx 反向代理进行请求。
现在我的问题是:我应该对我的 ubuntu 机器进行哪些服务器更改(除了 nginx 配置,我想我现在对此很有信心),以确保它的性能在我的情况下达到最佳状态。我在 nginx 中的 Keep-Alive 为 0,服务器应该具有最小延迟和最大正常运行时间。
除了 nginx,我不打算在上面做任何事情。我过去担心的问题之一是 ipconntrack。我不太了解 ipconntrack 和 iptables,也不知道为什么我需要它们,如果禁用/启用它们会发生什么,以及如何最好地禁用它们。我还发现我的 TIME_WAIT 连接队列多次增加。
我还应该考虑优化我的服务器的哪些参数
谢谢
答案1
TIME_WAIT 是一个 TCP 状态,表示连接正在关闭。在繁忙的服务器上,大量连接处于此状态是正常的。关闭的连接将保持此状态约 4 分钟,然后消失。ipconntrac 与此无关。
ipconntrac 是 Linux 中可用的状态防火墙的一部分。基本上,它跟踪连接的状态,这样它就不必检查每个数据包。一旦连接被接受,它就会被跟踪,并且可以通过检查已建立状态来明确接受。一些协议使用多个端口,并使用适当的辅助模块,相关连接可以获得相同的快速通行。
某些发行版将防火墙作为模块加载。在这些发行版中,可以通过卸载模块和任何相关模块来禁用 ipconntrac。为了防止它在重新启动时加载,有一个模块黑名单机制。
除非您的服务器前面有防火墙,否则我会安装一个防火墙脚本,禁用除 80 和 443 之外的端口上的互联网访问(如果支持 HTTPS)。我使用 Shorewall,它有一些很好的示例脚本。对于您来说,两个接口示例将是一个很好的起点。