如何提高nginx反向代理的性能?

nginx中我几乎是个noobie,我真的需要一些帮助。

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

这里是我的httperf结果:

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

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

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

我的目标是find一个很好的方式来扩大和使用负载平衡器,但似乎如果Nginx的请求每秒的请求作为一个单一的Apache服务器有限,那么没有意义….

我可以得到一些人的帮助吗?

首先设定这个基本的:

worker_processes 2; # put here the number of CPU you got. 

关于您使用的操作系统,请设置最佳事件引擎: use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ] use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ] use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]

然后设置每个工作人员的连接数量。 在这里要小心,你的系统应该被nginx使用的用户限制。 请参阅/etc/security/limits.conf来设置nginx可以打开的最佳文件描述符数。

 events { use kqueue; worker_connections 4096; } 

那么这都是关于你的应用程序的作品。 您可以启用caching和/或压缩以获得更好的结果。 看到这个post的caching解决scheme: 如何设置Nginx的caching反向代理?