function Geek()

技術的な備忘録が多くなってる。

centos7でApacheとnginxを比較してみる(既視感)

今回の内容は、社内勉強会用の内容です。

ネットワークチームになったのもあるので、

そんなインフラ系をひとつといった経緯ですね。

既にめちゃめちゃ記事があると思うのですが、やってみます。

 

 

nginxのおさらい

えぬじんくす? 

nginx(エンジンエックス)です。

 

フリーかつオープンソースWebサーバである。加えて、HTTPSMTPPOP3IMAPリバースプロキシの機能も持つ。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。

nginx - Wikipedia

 

 

2010年から2015年までのWeb Serverシェアの推移

f:id:LoliCom:20150605133513j:plain

 
w3tech提供のWeb ServerランキングのApacheとNginxの推移

f:id:LoliCom:20150605134006j:plain

参考サイト:https://oss.sios.com/yorozu-blog/webserver-trend-2010-2015

 

比較用の環境構築 

まず、今回はモダンな感じで、、、

 Windows8.1   Vagrant  VirtualBox  CentoOS7

 windowsの中にVagrantVirtualBoxインスコして

その中で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を移行したり、リバースプロキシとして使用してみたり

などなど、、、

ネタになりそうなのはまだまだあるので、実施したらアップしていきます!