centos7でApacheとnginxを比較してみる(既視感)
今回の内容は、社内勉強会用の内容です。
ネットワークチームになったのもあるので、
そんなインフラ系をひとつといった経緯ですね。
既にめちゃめちゃ記事があると思うのですが、やってみます。
nginxのおさらい
えぬじんくす?
nginx(エンジンエックス)です。
フリーかつオープンソースのWebサーバである。加えて、HTTP、SMTP、POP3、IMAPのリバースプロキシの機能も持つ。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。
2010年から2015年までのWeb Serverシェアの推移
w3tech提供のWeb ServerランキングのApacheとNginxの推移
参考サイト:https://oss.sios.com/yorozu-blog/webserver-trend-2010-2015
比較用の環境構築
まず、今回はモダンな感じで、、、
Windows8.1 | Vagrant | VirtualBox | CentoOS7 |
windowsの中にVagrantとVirtualBoxをインスコして
その中でCentOS7をインスコして、nginxとApacheを入れましたw
文章にすると複雑ですね。
ただ、この環境を構成しようとしたらまー色々とハマりました、、、。
windowsなので「vagrant ssh」が使えないので、PuTTYから接続したり
nginxとphp-fpmをインスコしたけどPHPが動かなかったりなどなど、、、
まぁ色々ありました!
今回の目的を見失うんじゃないかってぐらいに!
それはまた備忘録としてアップしようと思います!
実際に比較してみる
本来であればApache+phpとnginx+phpの2台を用意して
「Apache Jmeter」を使用したかったのですが、、、
phpがまだ動かせていないので、取り敢えず「ab」コマンドを打っていきます!
2つのバージョン | |
Apache | Nginx |
2.4.6 | 1.9.1 |
リクエスト数は10000固定して実行してみます!
コマンド例:ab -n 10000 -c 100 http://127.0.0.1/
同時接続数 | apache(2.4.6) | nginx(1.9.1) |
100 | 13.372 [ms] | 5.739 [ms] |
300 | 96.957 [ms] | 17.824 [ms] |
500 | 164.056 [ms] | 29.908 [ms] |
1000 | error… | 85.070 [ms] |
こんな結果になりました!
個人的な感想
今回の実行環境では特にチューニングなどは行わずに
検証が出来るように最低限のインストールのみを行っていました。
今回は単純なindex.htmlに対して接続してのテストだったのですが、
それでもここまで変わるとパフォーマンス・チューニングする際は
nginxに移行する事を考慮出来るような気がします。
他のテストとして、画像を10個ぐらいあるファイルに対しての
検証とかやった方がいいのでしょうが間に合わず、、、。
まだまだnginxの機能全てを使用したわけではないので
2回目はApacheからnginxを移行したり、リバースプロキシとして使用してみたり
などなど、、、
ネタになりそうなのはまだまだあるので、実施したらアップしていきます!