SlideShare a Scribd company logo
Nginx&バージョンアップ動向
2015/01&∼&2015/06
TAKAMURA'Narimichi(@nari_ex)
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 1
バージョンアップ動向
• 前回発表時点からの更新分を追いかけました
• 2015/01(v1.7.10)∼*2015/06(v1.9.2)
• Change,*Feature,*Bugfix*に注目
• (proxy|fastcgi|scgi)_hoge*みたいなパラメータは*proxy*
のみ記載
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 2
Nginx&1.7.10(2014-02-10)&その1
• Feature
• use_temp_path(が(proxy_cache_path(などで利用可能
• キャッシュ作成時の一時ファイルのパス
• on(または(off(を指定
• proxy_temp_path(などで具体的なパスを指定する
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 3
use_temp_path!の設定例
proxy_cache_path /data/nginx/cache use_temp_path=on;
proxy_temp_path /data/nginx/tmp
• キャッシュ作成は一時ファイルに書き込んだあと、そのファイ
ルをキャッシュ保存先のパスへ移動することで行われる
• 移動元と移動先のファイルシステムが異なる場合、リネーム
ではなくコピー処理になるので注意
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 4
Nginx&1.7.10(2014-02-10)&その2
• Feature
• upstream_header_time(変数
• upstream(サーバから応答ヘッダを受け取るまでの時間
• lua(や(mruby(拡張を用いて、n(秒以上応答ヘッダを返さな
い(upstream(サーバを切り離す処理とかが実現できそう
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 5
Nginx&1.7.11(2015-03-24)&その1
• Change
• aio sendfile;(が非推奨(deprecated)
• aioとsendfileディレクティブを両方使った場合、非同期
ファイル(I/O(時のsendfile()呼び出しの際に読みを行う
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 6
Nginx&1.7.11(2015-03-24)&その2
• Feature
• スレッドプールをサポート(experimental)
• メールプロキシがクライアント.SSL.をサポート
• proxy_request_buffering!追加
• リクエストボディのバッファリングのON・OFF切り替え
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 7
proxy_request_buffering!の設定例
client_max_body_size 50m;
server {
listen 80;
location /upload {
proxy_request_buffering off;
...
}
}
※!設定次第では強制的にONになることがあるので注意!1
1
"nginxのリクエストボディのバッファリングに関する問題とその改善策
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 8
Nginx&1.7.11(2015-03-24)&その3
• Feature
• リクエストボディフィルターAPI(experimental)
• Bugfix
• LibreSSL7を利用した場合に7SSLv37が利用できない問題を修正
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 9
Nginx&1.7.12(2015-04-07)&その1
• Feature
• tcp_nodelay(がバックエンドとのSSLコネクション時にも
動作する
• スレッドプールがキャッシュ読み込み時に利用される
※(スレッドプールは9倍速くなるらしい2
2
"Thread"Pools"in"NGINX"Boost"Performance"9x!
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 10
Nginx&1.7.12(2015-04-07)&その2
• Bugfix
• Linux*でスレッドプール利用時にSegmenta0on*Faultする問題
を修正
• ngx_http_spdy_module*のバグ修正
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 11
Nginx&1.9.0(2015-04-28)&その1
• Change
• aio(と(rtsig(イベントメソッドが削除された
• rtsig(とは(librt(を用いた非同期処理の手法
• upstream!ブロック内で!zoneディレクティブが利用可能
• アップストリームを各ワーカープロセス間で共有できる
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 12
upstream!ブロック内で!zone!ディレクティブを使う
upstream backends {
zone zone_for_backends 64k;
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
...
}
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 13
Nginx&1.9.0(2015-04-28)&その2
• Feature
• ngx_stream_core_module!モジュールが新たに利用可能
• ngx_http_memcached_module(が(byte(ranges(request3
(を
サポート
3
"14"Header"Field"Defini0ons
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 14
ngx_stream_core_module!モジュールの利用例
TCP$Load$Balancing$ができる$→$HA$Proxy$などの代替になるかも
stream {
upstream backend {
hash $remote_addr consistent;
server backend1.example.com:12345 weight=5;
server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
}
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 15
Nginx&1.9.1(2015-05-26)&その1
• Change
• SSLv3%がデフォルトで%disabled
• 長い間非推奨だったいくつかのディレクティブが利用不可4
• 具体的なディレクティブ書いてなくて怖い
• connections)は利用できなくなった様子
4
"Removed"the"deprecated""connec1ons""direc1ve.
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 16
Nginx&1.9.1(2015-05-26)&その2
• Feature
• reuseport!が!listen!ディレクティブで利用可能
• upstream_connect_time(変数が利用可能に
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 17
reuseport!の設定例
Linux&Kernel&3.9&からサポートされた&SO_REUSEPORT4
&を利用す
る
listen 443 ssl spdy reuseport;
Linux&の場合は難あり(DragonFly&BSDはOKとのこと)5
&6
6
"changeset"6153:4f6efabcb09b
5
"Merge"branch"'soreuseport'
4
"Removed"the"deprecated""connec1ons""direc1ve.
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 18
Nginx&1.9.2(2015-06-16)&その1
• Feature
• backlog(パラメータが(mail(proxy(と(stream(モジュールにお
ける(listen(ディレクティブで利用可能に
• backlog=numberはバックログキューの長さを指定する
パラメータ
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 19
Nginx&1.9.2(2015-06-16)&その2
• Feature
• stream*モジュールで以下の機能が利用可能
• allow,*deny*ディレクティブ(アクセス制御)
• proxy_bind*ディレクティブ(アドレス変換)
• proxy_protocol*ディレクティブ(ProxyProtocolサポー
ト)
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 20
Nginx&1.9.2(2015-06-16)&その3
• Feature
• nginx(コマンドに(-T(オプションが追加
• コンフィグテスト実施後、設定ファイルをダンプする
• ちなみに既存の(-t(はコンフィグテストのみ行う
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 21
Nginx&1.9.2(2015-06-16)&その4
• Bugfix
• reuseport'が正常に動作しない問題を解決
• OCSP'stapling'利用時にいくつかのケースにおいて有効期限が
切れたOCSPレスポンスを返す問題を解決
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 22
感想!その1
• アツいと感じた変更点
• デフォルト"SSLv3"無効化
• upstream"内で"zone"が使える
• stream"モジュール
• OCSP"stapling"で期限切れレスポンス返しちゃうバグの解消
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 23
感想!その2
• 「新機能リリース」"→"「直後に"Bugfix」の流れが多いので新機
能をすぐに利用する場合は要注意
• nginx -T"はだれかが る予感
• ngx_http_spdy_module"のバグ修正の頻度が減ってきた
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 24
おしまい
2015/06/22'社内プロダクト勉強会'('TAKAMURA'Narimichi 25

More Related Content

PDF
Nginx バージョンアップ動向(2015/07〜2015/12)
PDF
Nginx バージョンアップ動向(2014/01〜2014/12)
PDF
Dovecot & Postfix バージョンアップ動向 201506-201511
PDF
nginxの紹介
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
PDF
Webサーバ勉強会#4
PDF
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
PPTX
st2-docker ことはじめ
Nginx バージョンアップ動向(2015/07〜2015/12)
Nginx バージョンアップ動向(2014/01〜2014/12)
Dovecot & Postfix バージョンアップ動向 201506-201511
nginxの紹介
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
Webサーバ勉強会#4
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
st2-docker ことはじめ

What's hot (20)

PDF
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
PPTX
Jenkins User Conference 東京 2015
PDF
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
PPTX
NGINX + Ansible Automation Webinar (日本語版)
PDF
lua_nginx_module JSON-RPC 2.0 Batch Request
PPTX
Live配信のワークフロー takusuta tech conf #1
PDF
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
PPTX
Jenkins 2.0 (日本語)
PDF
NGINX製品の最新機能アップデート情報
PDF
APIMeetup 20170329_ichimura
PDF
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
PDF
Openshift 20191121
PDF
20140404 vyatta users Group / REST API解説
PDF
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
PDF
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
PPTX
Introducing NGINX App Protect (Japanese Webinar)
PDF
Hyper-V ネットワークの基本
PPTX
NGINX New Features (Japanese Webinar)
PPTX
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
PPTX
コードの互換性と進化の両立
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
Jenkins User Conference 東京 2015
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
NGINX + Ansible Automation Webinar (日本語版)
lua_nginx_module JSON-RPC 2.0 Batch Request
Live配信のワークフロー takusuta tech conf #1
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
Jenkins 2.0 (日本語)
NGINX製品の最新機能アップデート情報
APIMeetup 20170329_ichimura
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
Openshift 20191121
20140404 vyatta users Group / REST API解説
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
Introducing NGINX App Protect (Japanese Webinar)
Hyper-V ネットワークの基本
NGINX New Features (Japanese Webinar)
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
コードの互換性と進化の両立
Ad

Similar to Nginx バージョンアップ動向(2015/01〜2015/06) (20)

PDF
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
PDF
WebRTC開発者向けプラットフォーム SkyWayの裏側
PPTX
Multibranch Pipeline with Docker 入門編
PPTX
Selenium webdriver使ってみようず
PPT
Cakephp勉強会@tokyo #4
PPTX
Rmote Packet Capture Protocol を使って見る
PDF
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
PDF
はてなのサービスの開発環境
PPTX
NGINXでの認可について考える
PDF
Draft: Observability, Service Mesh and Microservices
PDF
Using ngx_lua / lua-nginx-module in pixiv
PDF
長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps
PDF
nginx入門
PDF
HBase Meetup Tokyo Summer 2015 #hbasejp
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
Microservices and Servcie Mesh on Azure
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PDF
CakePHP最新情報 PHPカンファレンス関西2012
PDF
How to run P4 BMv2
PDF
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
WebRTC開発者向けプラットフォーム SkyWayの裏側
Multibranch Pipeline with Docker 入門編
Selenium webdriver使ってみようず
Cakephp勉強会@tokyo #4
Rmote Packet Capture Protocol を使って見る
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
はてなのサービスの開発環境
NGINXでの認可について考える
Draft: Observability, Service Mesh and Microservices
Using ngx_lua / lua-nginx-module in pixiv
長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps
nginx入門
HBase Meetup Tokyo Summer 2015 #hbasejp
はてなにおける継続的デプロイメントの現状と Docker の導入
Microservices and Servcie Mesh on Azure
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
CakePHP最新情報 PHPカンファレンス関西2012
How to run P4 BMv2
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
Ad

More from Narimichi Takamura (8)

PDF
Dovecot & Postfix バージョンアップ動向 201401-201505
PPTX
ぼくとおこめとJSON
PDF
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
PDF
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
PDF
【続編】その ionice、ほんとに効いてますか?
PDF
その ionice、ほんとに効いてますか?
PDF
ぼくとおこめ
PDF
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」
Dovecot & Postfix バージョンアップ動向 201401-201505
ぼくとおこめとJSON
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 5 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 1 章
【続編】その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
ぼくとおこめ
( (0) / (0)) ☆祝☆ (nari_ex) LT at Cloud Server Festa 2013 Autumn「サバフェス!」

Nginx バージョンアップ動向(2015/01〜2015/06)