在性能方面,比较Nginx和Apache的负载均衡器

虽然这个问题已经在许多地方讨论过,但我还是对负载均衡器的性能进行了简单的比较。

Apache和Nginx的对比表和基准测试

我按照以下条件进行了比较。

    • ロードバランサ 1 台で バックエンドの web サーバ 2 台を負荷分散

 

    • web サーバは 2 台とも apache を使用

 

    • apache bench でそれぞれ10回計測し、その平均を算出。

 

    • テストに用いるページは Apache Test Page

 

    • Apache/2.2

 

    nginx/1.8

用Apache Bench快速进行性能测试

none

基准测试

    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/

广告
将在 10 秒后关闭
bannerAds