在性能方面,比较Nginx和Apache的负载均衡器
虽然这个问题已经在许多地方讨论过,但我还是对负载均衡器的性能进行了简单的比较。
Apache和Nginx的对比表和基准测试
我按照以下条件进行了比较。
-
- ロードバランサ 1 台で バックエンドの web サーバ 2 台を負荷分散
-
- web サーバは 2 台とも apache を使用
-
- apache bench でそれぞれ10回計測し、その平均を算出。
-
- テストに用いるページは Apache Test Page
-
- Apache/2.2
- nginx/1.8
用Apache Bench快速进行性能测试
基准测试
- Requests per second [#/sec]
同時接続数apachenginxweb サーバ直接1002697.8713463.7744326.2933002485.4093362.2143002.4405002436.3723286.8341507.004
- Time per request [ms]
同時接続数apachenginxweb サーバ直接1000.37340.28900.23263000.40310.29780.33315000.41070.30460.6636
功能性的事情
-
- ディレクトリやファイルのパスでの振り分けは両方可能
-
- オープンソースの WAF:ModSecurity を入れることも両方可能
-
- SSL証明書の設定も両方可能
- セッション維持(パーシステンス)をしたい場合、apache の場合はモジュール mod_proxy_balancer の stickysession、nginx の場合は標準で sticky が入っているようだが、サードパーティ製のモジュール nginx-sticky-module-ng を使用するという情報が多い。nginx の公式サイトに if is evil とあるので、if を使用するような設定には注意が必要
更正:商用版本的Nginx Plus似乎包含了”sticky”功能。
Nginx进行WebSocket负载均衡
关于mod_proxy_balancer的配置,特别是stickysession
ngx_http_upstream_module模块
由于免费SSL/TLS证书Let’s Encrypt已成为正式版,因此尝试了自动更新
如果是邪恶的话| NGINX
最后(的结论是)
-
- 環境によって変わる可能性はあると思うが、やはり nginx の方が速そう。
-
- 同時接続数が 100 ぐらいまでならロードバランサなしの方がよさそうだが、web サーバを隠蔽化するという目的もあるので入れておきたい。
-
- if 非推奨も気になるが、使わなくても目的は達成できそう。
-
- 機能的にはどちらも問題ない。
- web サーバも nginx にすればもっと早くなりそう。
nginx、apache的负载均衡器性能比较
http://web.loft-net.co.jp/lofttecs/nginx_apache_load_balancer_performance/