人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

Webサーバ

独自でngx_mrubyのDockerイメージを作る方法

随分前にngx_mrubyをDocker対応していたのですが、最近になってより使いやすくなったので、ngx_mrubyをDockerで使う方法を簡単に紹介します。

trusterdのHTTP/2クライアント機能をCアプリに組み込んでみよう

前回の記事では、trusterdのHTTP/2サーバ機能をCアプリに組み込む方法を紹介しました。 C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み込む方法 - 人間とウェブの未来 C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み…

C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み込む方法

今日は僕が開発しているTrusterd HTTP/2 Webサーバの一つの特徴である、「HTTP/2機能のアプリ組込み」の方法を紹介したいと思います。 Cをちょっと書けるレベルの人でも5分でCアプリにHTTP/2機能を組み込んで、自分のHTTP/2サーバを実装できます。

ngx_mruby経由でtrusterdをnginxに組み込んでnginxの情報をHTTP/2で裏から取得してみた

trusterdはHTTP/2クライアントとサーバ両方の機能を持っており、それらの機能は全てモジュールとして取り外し可能な設計にしています。 そのため、HTTP/2クライアント・サーバ機能をmrubyモジュールとして取り外して、他のアプリケーションにmruby経由で組み…

Trusterd HTTP/2 Webサーバで複数のサーバを簡単に立ち上げる方法

Trusterdの設定はRubyでプログラマブルに定義することができます。 それを利用することにより、一つの設定ファイルで、例えば複数のサーバを様々なパラメータで起動させることも当然できます。 今回は、HTTP/2サーバのTLS有りと無しのサーバをそれぞれ一気に…

Trusterd HTTP/2 WebサーバのTLS接続時の性能を改善

もはやHTTP/2リファレンス実装であるHTTP/2のCライブラリnghttp2の作者であるtatsuhiro_tさんが素晴らしいベンチマーク結果を公開されました。 その中で以下のように、あまりにもH2Oやnghttpdと比べてtrusterdのTLS利用時の性能が遅かったため改善しました。…

mod_mrubyとngx_mrubyの次の一手となる新しいソフトウェア

この記事は、mod_mruby ngx_mruby advent calendar 2014の最終日25日の記事になります。

ngx_mruby vs lua-nginx-module memo

Configuration, Environment Machine Ubuntu14.04 on VMWare Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz 4core Memory 8GB

ngx_mrubyインストール後入門 - ngx_mrubyによるnginx変数の扱い

本記事はmod_mruby ngx_mruby advent calendar 2014 21日目の記事です。

mrubyのサーバアプリケーション組込みにおいて複数スクリプトでインタプリタを共有することのデメリットとその対策

本記事はmod_mruby ngx_mruby advent calendar 2014 20日目の記事です。 昨日は、 @inokappa さんによる「ngx_mruby で Nginx への接続数等の内部情報を取得して InfluxDB と Tasseo で可視化してみる」でした。

mod_mrubyとngx_mrubyの設計思想とスクリプト間でオブジェクトを共有するためのアーキテクチャ概論

本記事はmod_mruby ngx_mruby advent calendar 2014 17日目の記事です。 昨日は、 @hkusu さんによる「静的リソースをリバースプロキシで配信する《mod_mruby ngx_mruby Advent Calendar 2014》」でした。

地理情報を使ってmod_mrubyとngx_mrubyでプログラマブルにアクセス制御

mod_mruby ngx_mruby advent calendar 2014 13日目の記事になります。 12日目は @ainoya さんの「mod_mrubyでJWTベースの認証proxyを作る」でした。 Apacheでもnginxでも、GeoIPの地理情報を使ってアクセス制御をすることができます。ですが、mod_mrubyやngx…

mod_mrubyインストール後入門

thanks to @bamchoh https://github.com/bamchoh/mod_mruby_logo ngx_mrubyのロゴも募集中です!(このロゴを緑ベースでngx_mrubyとするだけでも良いかも...) おはようございます。@matsumotory でございます。 この記事は、mod_mruby ngx_mruby advent cal…

nginxのworkerプロセス初期化・exit時にRubyスクリプトを実行できる機能をngx_mrubyに追加

タイトルそのままなのですが、nginxのworkerプロセスの初期化・exit時にRubyスクリプトを実行出来る機能をngx_mrubyに追加しました。 matsumoto-r/ngx_mruby matsumoto-r/ngx_mruby · GitHub

ApacheでCGIを使う場合にpreforkを使った方が良い状況とそのチューニングについて

かなり今更感の漂う内容ではありますが、意外と情報が分散していたり、Apache2.4系を考慮した場合に足りていない内容があったのでこのエントリで一度まとめてみようと思います。 CGIを使うようなシステムでそれなりにアクセスが集中するサーバ、例えば日々の…

Apache httpd 2.4系をバックエンドに置く場合のクライアントIPアドレスの扱いとハマりどころ

nginxやその他のリバースプロキシをフロントにおいて、バックエンドにApache httpdを置くという構成をとることがあります。 その場合に何も対処しないと、アクセスログやアプリが認識するクライアントIPアドレスがリバースプロキシのIPアドレスになってしま…

ApacheやnginxのMarkdownファイル変換モジュールをmrubyで簡単に書いてみよう

今回は、.mdファイルにMarkdown形式で文章を書いておき、それをApache httpdやnginxでホストし、ブラウザからアクセスするとHTMLに変換されて表示されるMarkdownコンバータモジュールをmrubyで書く方法を紹介したいと思います。

VirtualHostを用いた共有レンタルサーバは静的コンテンツも権限分離しなければならない

共有レンタルサーバのWeb機能提供において、単一のApache httpdでVirtualHost機能により複数のホストを仮想的に処理する場合が多く、その際に重要になってくるのがCGI等の動的コンテンツを適切に権限分離しセキュリティを担保する事です。