SlideShare a Scribd company logo
1 of 18
nginxに追加された
新モジュール
それが
33第 回
#pakeana
@furandon_pig
です
• Twitter ID: @furandon_pig
• 家ではNetBSDを使っています
• 興味ドリブンで勉強会開催しています
• ECMA-262 Edition5.1読書会
• https://ecma262reading.doorkeeper.jp/
• 「理論から学ぶ データベース実践入門」読書会
• http://riron-db.connpass.com
• ゆるいUNIX勉強会〜ゆるゆに〜
• https://yry2.doorkeeper.jp/
• Live2Dで遊ぶ会
• https://enjoying-live2d.doorkeeper.jp/
自己紹介
nginxのHTTP2モジュールの話です
「ご注文はうさぎですか??」的な
風味と共にお送ります
本日の発表内容
HTTPの新バージョン
(2015年に標準化)
いくつかのWebサーバでサポート
されている
nginx-1.9.5でHTTP/2をサポート
多重化された単一コネクション
HTTP/2?
HTTP/2モジュールを含めてビルド
テスト環境
サーバ
CentOS 7
nginx-1.9.5
クライアント
Windows10
firefox
172.16.0.53 172.16.0.52
HTTP/2モジュールを含めてビルド
nginx-1.9.5のビルド
$ sudo yum install gcc pcre-devel zlib-devel openssl-devel
$ curl -O http://nginx.org/download/nginx-1.9.5.tar.gz
$ tar zxvf nginx-1.9.5.tar.gz
$ cd nginx-1.9.5
$ ./configure --prefix=/opt/nginx-1.9.5 --with-http_v2_module
$ make
$ sudo make install
テスト用にサーバ証明書を作成
オレオレ証明書の作成
$ openssl genrsa 2048 > gochiusa.key
$ openssl req -new -key gochiusa.key > gochiusa.csr
$ openssl x509 -days 3650 -req -signkey 
gochiusa.key < gochiusa.csr > gochiusa.crt
【参照】オレオレ証明書をopensslで作る(詳細版) - ろば電子が詰まっている
http://d.hatena.ne.jp/ozuma/20130511/1368284304
/opt/nginx-1.9.5/confに配置する
$ sudo cp server.key server.crt /opt/nginx-1.9.5/conf/
nginx.confに記述する
nginxのHTTP/2設定(1/2)
server {
listen 443 ssl http2 default_server;
server_name localhost;
ssl_certificate gochiusa.crt;
ssl_certificate_key gochiusa.key;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256";
ssl_session_cache off;
location / {
root html;
index index.html index.htm;
}
}
nginxの起動・停止
nginxの起動と設定リロード
$ sudo /opt/nginx-1.9.5/sbin/nginx
$ sudo /opt/nginx-1.9.5/sbin/nginx -s stop
設定リロード
$ sudo /opt/nginx-1.9.5/sbin/nginx -s reload
firefoxの開発者ツールから確認
HTTP/2での接続確認(1/2)
nginxのアクセスログから確認
HTTP/2での接続確認(2/2)
"GET /gochiusa_icon/00000231.png HTTP/2.0" 200 177113 "https://172.16.0.53/gochiusa.html"
HTTP/2.0
nginx.confの設定例
HTTP/2での接続確認
コネクションの多重化
ごちうさベンチマーク(仮)
HTTP/1.xとHTTP/2の性能比較
動作デモ
JSON風の形式でデータを保存
HAR形式(1/2)
“timings”に送受信時間のデータ
HAR形式(2/2)
"request": {
"bodySize": 0,
"method": "GET",
"url": "https://172.16.0.53/gochiusa_icon/00000141.png",
"httpVersion": "HTTP/2.0",
...中略...
"cache": {},
"timings": {
"blocked": 0,
"dns": 0,
"connect": 0,
"send": 0,
"wait": 9,
"receive": 16
},
"serverIPAddress": "172.16.0.53",
"connection": "443"
ワンライナーでデータ切り出し
HARから送受信データ切り出し
# blocked, dns, connect, send, wait, receive
grep -A6 timings $1 
| sed -e "s/[t ]//g" 
| paste - - - - - - - - 
| sed -e "s/:/ /g" -e "s/,//g" 
| awk '{ print $4 "," $6 "," $8 "," $10 "," $12 "," $14 }'
$ grep -A6 timings $1 
| sed -e "s/[t ]//g" 
| paste - - - - - - - - 
| sed -e "s/:/ /g" -e "s/,//g" 
| awk '{ print $4 "," $6 "," $8 "," $10 "," $12 "," $14 }’
0,0,0,0,567,360
実行例
大量の画像データ受信時間で比較
HTTP/1.xとHTTP/2の比較
0 250 500 750 1000
HTTP/1.x
HTTP/2
blocked dns 接続 送信 待機 受信
単位:ミリ秒
HTTP/1.xと比べて一割ほど速い
接続にかかる時間が小さい
コネクションの多重化
待機・受信時間がHTTP/1.xより
大きい
HTTP/2からみた比較結果
nginx-1.9.5のHTTP/2モジュール
HTTP/2のデモと動作確認
ブラウザとアクセスログで確認
ごちうさベンチマーク(仮)
HTTP/1.xとHTTP/2の性能比較
まとめ

More Related Content

What's hot

最近の事と #NT金沢 2018に初出展してきた
最近の事と #NT金沢 2018に初出展してきた最近の事と #NT金沢 2018に初出展してきた
最近の事と #NT金沢 2018に初出展してきたNetwalker lab kapper
 
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみようAndroidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみようNetwalker lab kapper
 
cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理Kohki Miki
 
Android 4.x CyanobenModの 移植方法を調査してみた
Android 4.x CyanobenModの 移植方法を調査してみたAndroid 4.x CyanobenModの 移植方法を調査してみた
Android 4.x CyanobenModの 移植方法を調査してみたNetwalker lab kapper
 
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...Netwalker lab kapper
 
「Dockerはいいぞ」 for Laboratory LT
「Dockerはいいぞ」 for Laboratory LT「Dockerはいいぞ」 for Laboratory LT
「Dockerはいいぞ」 for Laboratory LTShimpeiIwamaru
 
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化Fuminobu Takeyama
 
The Chef integrations Z Cloud(Joyent)
The Chef integrations Z Cloud(Joyent)The Chef integrations Z Cloud(Joyent)
The Chef integrations Z Cloud(Joyent)Yukihiko SAWANOBORI
 
Debian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TADebian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TANetwalker lab kapper
 
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Netwalker lab kapper
 
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Netwalker lab kapper
 
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by LinuxAndroid Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by LinuxNetwalker lab kapper
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう_norin_
 
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17smNetwalker lab kapper
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバzgock
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかMasataka Tsukamoto
 
【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_Chainer【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_ChainerRyosuke Tanno
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoNetwalker lab kapper
 

What's hot (20)

最近の事と #NT金沢 2018に初出展してきた
最近の事と #NT金沢 2018に初出展してきた最近の事と #NT金沢 2018に初出展してきた
最近の事と #NT金沢 2018に初出展してきた
 
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみようAndroidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
 
cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理cocos2d-consoleでパッケージ管理
cocos2d-consoleでパッケージ管理
 
Android 4.x CyanobenModの 移植方法を調査してみた
Android 4.x CyanobenModの 移植方法を調査してみたAndroid 4.x CyanobenModの 移植方法を調査してみた
Android 4.x CyanobenModの 移植方法を調査してみた
 
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
 
「Dockerはいいぞ」 for Laboratory LT
「Dockerはいいぞ」 for Laboratory LT「Dockerはいいぞ」 for Laboratory LT
「Dockerはいいぞ」 for Laboratory LT
 
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
 
The Chef integrations Z Cloud(Joyent)
The Chef integrations Z Cloud(Joyent)The Chef integrations Z Cloud(Joyent)
The Chef integrations Z Cloud(Joyent)
 
Debian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TADebian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TA
 
Fn project爆誕
Fn project爆誕Fn project爆誕
Fn project爆誕
 
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
 
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
 
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by LinuxAndroid Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう
 
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
 
SKKのススメ
SKKのススメSKKのススメ
SKKのススメ
 
【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_Chainer【2016年度】勉強会資料_Chainer
【2016年度】勉強会資料_Chainer
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
 

Viewers also liked

パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapfurandon_pig
 
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライドfurandon_pig
 
忍者ツールズのCouchbase導入事例
忍者ツールズのCouchbase導入事例忍者ツールズのCouchbase導入事例
忍者ツールズのCouchbase導入事例Kenichi Tsunokawa
 
プレゼン用の図を自動生成する話
プレゼン用の図を自動生成する話プレゼン用の図を自動生成する話
プレゼン用の図を自動生成する話furandon_pig
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell scriptMasami Hiramatsu
 
インフラで実践したチームビルディングそれはサバ天
インフラで実践したチームビルディングそれはサバ天インフラで実践したチームビルディングそれはサバ天
インフラで実践したチームビルディングそれはサバ天ume3_
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④Yahoo!デベロッパーネットワーク
 

Viewers also liked (10)

パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
 
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
第6回 エンジニアのためのプレゼン技術研究会「今年の抱負」と「アンチプレゼンパターン」発表スライド
 
忍者ツールズのCouchbase導入事例
忍者ツールズのCouchbase導入事例忍者ツールズのCouchbase導入事例
忍者ツールズのCouchbase導入事例
 
Aws2013 03-15 last2
Aws2013 03-15 last2Aws2013 03-15 last2
Aws2013 03-15 last2
 
プレゼン用の図を自動生成する話
プレゼン用の図を自動生成する話プレゼン用の図を自動生成する話
プレゼン用の図を自動生成する話
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell script
 
Linux Namespaces
Linux NamespacesLinux Namespaces
Linux Namespaces
 
インフラで実践したチームビルディングそれはサバ天
インフラで実践したチームビルディングそれはサバ天インフラで実践したチームビルディングそれはサバ天
インフラで実践したチームビルディングそれはサバ天
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション④
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 

Similar to nginxに追加された新モジュール それがHTTP/2モジュールです

こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜furandon_pig
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivShunsuke Michii
 
Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2015/07〜2015/12)Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2015/07〜2015/12)Narimichi Takamura
 
Unix architecture
Unix architectureUnix architecture
Unix architectureraw-hide
 
Sphinxでドキュメントを書こう
Sphinxでドキュメントを書こうSphinxでドキュメントを書こう
Sphinxでドキュメントを書こうKazufumi Ohkawa
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望Tetsuo Yamabe
 
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察cch-robo
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 

Similar to nginxに追加された新モジュール それがHTTP/2モジュールです (8)

こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
 
Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2015/07〜2015/12)Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2015/07〜2015/12)
 
Unix architecture
Unix architectureUnix architecture
Unix architecture
 
Sphinxでドキュメントを書こう
Sphinxでドキュメントを書こうSphinxでドキュメントを書こう
Sphinxでドキュメントを書こう
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 

nginxに追加された新モジュール それがHTTP/2モジュールです