如何优化 nginx 反向代理?

如何优化 nginx 反向代理?

我对 nginx 还只是个新手,我真的需要一些帮助。

我使用 nginx 作为反向代理服务器,主要用作负载平衡器。我几乎只使用动态文件。后端服务器是 apache。

以下是我的 httperf 结果:

  • 单个 Apache 服务器 (1024 mb):每秒 300 个请求
  • 2x 512 mb apache 服务器,1 nginx 服务器(1024 mb):每秒 300 个请求
  • 2x 1024 mb apache 服务器,1 nginx 服务器(1024 mb):每秒 300 个请求

看来我的 nginx 服务器是瓶颈,但我不知道如何优化它。

apache 后端服务器和 nginx 服务器上的 cpu 使用率和 ram 使用率最小,不到 10%。

我的目标是找到一种很好的扩展方法并使用负载均衡器,但似乎如果 nginx 作为单个 apache 服务器每秒的请求数受到限制,那么就没有意义了......

我可以向任何人寻求帮助吗?

答案1

也许不是 nginx 的问题而是你的内核配置限制,你是否也尝试过微调内核参数?

我已经搜索了有关此问题的一些文档,到目前为止我发现了以下建议: http://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html

答案2

看起来您需要调整内核参数。我认为系统范围内可用的内存越多,多个决策算法的工作方式就越不同……

答案3

您的 nginx 配置值设置为多少worker_processes?默认值为 1,这可以解释此行为(您是单线程的,因此无论后端数量多少都不会改变任何事情)。

尝试在 nginx 配置文件中将其设置为 4,甚至 8。这将允许 nginx 一次调用多个后端,并应按比例增加后端的吞吐量。

http://wiki.nginx.org/CoreModule#worker_processes

相关内容