More Related Content
Similar to 第2回勉強会資料 岩本(配布用)
Similar to 第2回勉強会資料 岩本(配布用) (20)
More from Takahisa Iwamoto
More from Takahisa Iwamoto (11)
第2回勉強会資料 岩本(配布用)
- 2. とりあえず
自己紹介
名前 岩本 貴久
所属 株式会社ビヨンド
生息地 おなか吹田市
仕事 セールスエンジニア
年齢 31歳
インテリアが大好き
「いわもん」と呼ばれたり呼ばれなかったり
好きな食べ物 パイナップル ラムネ 鶏肉
好きな観光地 自宅(引きこもり)
- 12. Nginxとは?
3
Developer July 2013 Percent August 2013 Percent Change
Apache 364,696,792 52.19% 336,622,050 46.96% -5.23
Microsoft 137,351,211 19.65% 163,098,703 22.75% 3.10
nginx 95,017,255 13.60% 104,311,568 14.55% 0.96
Google 27,406,059 3.92% 30,550,914 4.26% 0.34
Netcraft社調査
WEBサーバのシェア
- 14. とりあえず
インストール
2
php-fpmのインストール
# yum install php php-devel php-fpm
# chkconfig php-fpm on
php-fpm の設定
# vim /etc/php-fpm.d/www.conf
# UnixSocketで通信
listen = /var/run/php-fpm/www.sock
user = nginx
group = nginx
php-fpmの起動
# /etc/init.d/php-fpm start
- 15. とりあえず
インストール
3
Nginx のインストール
必要モジュールのインストール
# yum install pcre pcre-devel openssl openssl-devel gcc
ユーザの追加
# useradd –s /sbin/nologin –d /usr/local/nginx -M nginx
ソースからのインストール
# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.2.3.tar.gz
# tar zxvf nginx-1.2.3.tar.gz
# cd nginx-1.2.3
# ./configure --user=nginx --group=nginx --with-
http_ssl_module --with-http_realip_module
# make
# make install
- 16. とりあえず
インストール
4
logrotateの設定
# vim /etc/logrotated/nginx
/var/log/nginx/*log {
missingok
Notifempty
Sharedscripts
rotate 12
Weekly
Compress
Postrotate
kill -USR1 `cat /var/run/nginx.pid`
Endscript
}
- 21. とりあえず
インストール
9
nginx.confの要点3
location ~ .php$ {
include /usr/local/nginx/conf/fastcgi_params;
fastcgi_pass unix:/tmp/php.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/var/www/vhosts/beyondjapan.com$fastcgi_script_
name;
}
# fcgiを使う設定
- 25. Apacheとの
違い3
Rewriteの記述が変わる
Apache
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^beyondjapan.com$ [NC]
RewriteRule ^(.*)$ http://www.beyondjapan.com/$1 [R=301,L]
</IfModule>
⇓あら簡単
Nginx
server {
server_name beyondjapan.com;
rewrite ^(.*)$ http://www.beyondjapan.com$1 ;
}
- 26. Apacheとの
違い4
プロセス型とスレッド型
Apache
プロセスで処理
プロセス駆動アーキテクチャ
リクエストが大量に来た際、プロセスが同時起動
するのでオーバヘッドが大きくなるデメリット
Nginx
スレッドで処理
イベント駆動アーキテクチャ
1つの処理時間が長くなる処理を実行した際、そこ
でプロセスがブロックされ処理能力が低下する
つまり、大量アクセスにはNginx、
1処理が重いならApache
- 28. みんな大好き
ベンチマーク
リクエスト回数:20 リクエスト回数:50 リクエスト回数:100 リクエスト回数:200 リクエスト回数:400
A pache 35 ミリ秒 36 ミリ秒 60 ミリ秒 122 ミリ秒 250 ミリ秒
N ginx 35 ミリ秒 37 ミリ秒 43 ミリ秒 40 ミリ秒 57 ミリ秒
0 ミリ秒
50 ミリ秒
100 ミリ秒
150 ミリ秒
200 ミリ秒
250 ミリ秒
300 ミリ秒
リクエスト回数:20 リクエスト回数:50 リクエスト回数:100リクエスト回数:200リクエスト回数:400
ab結果 静的コンテンツ
Apache Nginx
- 29. みんな大好き
ベンチマーク
リクエスト回数:20 リクエスト回数:50 リクエスト回数:100 リクエスト回数:200 リクエスト回数:400
A pache 3005 ミリ秒 7344 ミリ秒 12718 ミリ秒 19524 ミリ秒 41889 ミリ秒
N ginx 3193 ミリ秒 6115 ミリ秒 9401 ミリ秒 17752 ミリ秒 48944 ミリ秒
0 ミリ秒
10000 ミリ秒
20000 ミリ秒
30000 ミリ秒
40000 ミリ秒
50000 ミリ秒
60000 ミリ秒
ab結果 動的コンテンツ
Apache Nginx
- 31. php-cgiを
分離してみる
2
php-fpm
; listen = /var/run/php-fpm/www.sock
listen = 0.0.0.0:9000
; listen.allowed_clients = 127.0.0.1
コメントアウト
Nginx
#fastcgi_pass unix:/tmp/php.socket;
fastcgi_pass 192.168.101.20:9000;
- 32. php-cgiを
分離してみる
3
0 ミリ秒
10000 ミリ秒
20000 ミリ秒
30000 ミリ秒
40000 ミリ秒
50000 ミリ秒
60000 ミリ秒
ab結果 動的コンテンツ
Apache Nginx Nginx+php-fpm
リクエスト回数:20 リクエスト回数:50 リクエスト回数:100 リクエスト回数:200 リクエスト回数:400
A pache 3005 ミリ秒 7344 ミリ秒 12718 ミリ秒 19524 ミリ秒 41889 ミリ秒
N ginx 3193 ミリ秒 6115 ミリ秒 9401 ミリ秒 17752 ミリ秒 48944 ミリ秒
N ginx+ php-fpm 1985 ミリ秒 4198 ミリ秒 9309 ミリ秒 25010 ミリ秒 41538 ミリ秒