NGINX is an advanced Internet infrastructure software. |
Nginxは10月5日(米国時間)、「10 Tips for 10x Performance - NGINX」において、Webサーバを高速化するためのノウハウを紹介した。高速化は対象となるシステムがどのような特性であるかを加味するとともに、状況に応じて実施する必要がある。予算の関係もあり実施できる高速化にも限界があるが、さまざまな側面から高速化する方法が紹介されており、チューニングのための導入資料として役に立つはずだ。
紹介されている主なノウハウは次のとおり。
- ロードバランシングとリバース・プロキシサーバの導入
- ダイナミック・キャッシュの導入とスタティック・コンテンツの活用
- 適切なメディアファイルの使用(写真にはJPEG、グラフィックにはPNG、動画にはMPEG-4、音楽にはMP3といったもの)
- HTMLやテキストデータの圧縮機能の有効化
- TLS/SSLの最適化
- HTTP/2やSPDYの活用
- バッファ、キープアライブ、ワーカープロセス、ソケットシャーディング、スレッドプールなど性能に関連する機能の活用やチューニング
- Nginxの性能に関与するLinuxカーネルのパラメータの変更(net.core.somaxconn、sys.fs.file_max、net.ipv4.ip_local_port_range、net.ipv4.tcp_fin_timeout)
- 関連するソフトウェアを最新版へアップグレード
ロードバランシングを導入すれば高いスケーラビリティが期待できるが、それだけ予算も必要になる。Nginxの設定やカーネルのパラメータ設定の変更などで実現できる高速化もあることから、Nginxの高速化に興味ある場合には試してみる価値はありそうだ。