Railsを高速かつセキュアにするHTTP/2プロキシ「Thruster」、37signalsがオープンソースとして公開
RailsのためのHTTP/2プロキシ「Thruster」がオープンソースで公開された。ほとんど設定不要で、導入によりRailsアプリをより高速かつセキュアにする。
Ruby on Rails(以下、Rails)の開発元である37signalsは、より高速でセキュアなRailsアプリケーションを実現するHTTP/2プロキシ「Thruster」をオープンソースとして公開しました。
We've released Thruster as open source! It's a tiny, no-config HTTP/2 enabling, asset caching, X-Sendfile sending proxy for Rails' default web server Puma. One of the secret sauce elements of ONCE, now available to share for all: https://t.co/YywkPD29aG
— DHH (@dhh) March 7, 2024
RailsにはPumaと呼ばれるアプリケーションサーバが用意されており、NginxなどのWebサーバ上でPumaを用いてRailsアプリケーションを実行することが典型的な構成です。
しかしそれだけではまだ十分な性能には到達せず、追加のWebサーバやCDNを利用するケースが多かったとし、それがThrusterを提供する理由だと同社のブログ「Thruster is now open source」で説明されています。
To reach the performance you’d expect, you’d typically need to deploy Puma along with additional web servers, CDNs, and the like. You usually end up with a few moving parts to set up and maintain.
期待するパフォーマンスを得るために、通常は追加のWebサーバやCDNなどと一緒にPumaを導入する必要があった。この場合、セットアップとメンテナンスのためにいくつかの設定が必要になる。
このCDNなどを不要にするのがThrusterだとしています。
So we designed Thruster to be a simple, zero-config answer to those missing pieces we weren’t yet getting from Rails & Puma. Something that we could just drop in to a project, but otherwise not have to think about.
そこで私たちは、RailsとPumaだけでは得られなかった、シンプルで設定不要のソリューションとしてThrusterを開発した。これをプロジェクトに組み込むだけで、他に考慮することはなにもなくなるのだ。
ほぼ設定不要でRailsの性能とセキュリティを向上
ThrusterはRailsアプリケーションのためのミニマルなHTTP/2プロキシとして開発され、Pumaとともに利用することで、Railsアプリケーションの高速化とセキュリティ向上を実現します。以下が具体的な機能です。
- HTTP/2サポート
- SSL(Let's Encryptを用い、自動管理を実現)
- HTTPキャッシング
- X-Sendfile経由での効果的なスタティックファイルの配信と圧縮
Thrusterは設定不要で、Let's Encryptを用いたSSL自動化処理のためにSSL_DOMAIN環境変数にドメイン名を設定するだけで利用可能と説明されています。
あわせて読みたい
サイバー攻撃の標的は、パスワードよりも「認証後の証明」へ移ろうとしている。アイデンティティ管理のOktaはなぜ狙われ、どう対策していくのかを聞いた[PR]
≪前の記事
静的サイトジェネレーター「VitePress 1.0」正式リリース。VueとViteを採用し、高速なWebサイトを構築