タグ

plackに関するsasa_zukaのブックマーク (7)

  • Plack 環境で request body の size 制限 : にぽたん研究所

    表題のことがしたかった。 Apache の core にある LimitRequestBody ってディレクティブ使ったら request body が巨大なのとか防げるんだとおもってたら、どうも mod_proxy を使って reverse proxy にしている場合、proxy するリクエストにこの制限は効かないらしい。 日語のドキュメントには明記されてないのに、英語のドキュメントには明記されている罠。 ということで、LimitRequest* のディレクティブのような挙動を Plack 環境でよしなにやってくれる middleware を書いたらいいんじゃね?ってなってサラっとでっちあげてみました。 Plack-Middleware-LimitRequest - search.cpan.org 使いかたは SYNOPSIS にある通りです。 use Plack::Builder;

    Plack 環境で request body の size 制限 : にぽたん研究所
  • 社内でも動かしている PSGI アプリケーションに OpenID 認証をつけた

    社内でも動かしている PSGI アプリケーションに OpenID 認証をつけた Plack::App::Directory::Markdown をベースにちょっと手を入れた Markdown ビューアを使っている(記事)んだけれど、閲覧要認証なシチュエーションが出てきた。 自分のみ閲覧のものは builder で Plack::Middleware::Auth::Digest を enable にして Digest 認証をかけ、htdigest コマンドでパスワード管理とかで済ませているのだけれど、複数人に閲覧してもらうのにこれは嫌だ。人のパスワード管理はしたくない。 OAuth で Google アカウントとかの認証を使うというのもあるけれどキーとか面倒くさいので、せっかくだし mixi OpenID を使うことにした。Perl モジュールは Net::OpenID::Consumer:

    社内でも動かしている PSGI アプリケーションに OpenID 認証をつけた
  • YAPC::Asia 2013 Tokyo で PSGI/Plack サーバの高速化について発表してきました - blog.nomadscafe.jp

    livedoorBlogのPlack/Starlet化を背景として、この半年間ぐらいの間、PlackやStarletの高速化に取り組んできました。この発表はその中で学んだPSGI/Plackの基仕様、PSGIサーバの構築の方法と最適化、PSGIサーバの選び方、またMonocerosについて紹介しました。 多くのWebアプリケーションではこの最適化の恩恵を受ける事はないかもしれません。しかし、アプリケーションが動作する基盤がどのように実装され、最適化のテクニックが施されているかを知る事により、アプリケーション層の最適化がより捗るのではないかと思います。 質問等があれば気軽に、コメントやtwitterでメッセージを下さいませ。 1日目のトークでは、tokuhiromのFuture Perlの話。新しい構文や正規表現やpfjのexobrainなど、が気になりました。 あと、前夜祭のLT-Tho

  • PerlでWebAppの開発に必要なN個のこと - Islands in the byte stream (legacy)

    あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずPerlについて知っていることを書いた。 パッケージマネージャ まずライブラリの管理。モジュールをインストールし、可能であればバージョンを固定し、適切にロードする機能が必要だ。Perlの場合は cpanm というCPANクライアントでライブラリをインストールする。バージョンの固定とライブラリパスの設定は carton で行う。 https://github.com/miyagawa/cpanminus https://github.com/miyagawa/carton アプリケーションサーバ Webサーバへのインターフェイスとしては、PSGIという仕様がある。PSGIに準拠したツールキットとしてPlack

    PerlでWebAppの開発に必要なN個のこと - Islands in the byte stream (legacy)
  • PSGI アプリを supervisord + Server::Starter で動作させる - Hatak::Techlog

    PSGI で動作する Perl の Web アプリをデプロイする環境をどのように作ろうかと思って試してみたので、その手順をまとめてみます。 記事を書きかけて放置してしまっていたので、diff が古かったりするのはご愛敬で。。 構成の概要 今回構築しようと思う構成は次の通りです。 PSGI を用いた簡単な Web アプリ アプリを動作させる Perl とそのモジュール群は perlbrew + Carton で管理 複数のシステムを同一サーバで動かす可能性もあるため分離しておきたい Carton 使ってみたい アプリケーションサーバには Server::Starter + Starman を利用 Hotdeploy できるようにするため Server::Starter のプロセスは Supervisord で管理 supervisord の導入 スーパーサーバーSupervisorの導入手順

  • Plack::Middleware::AccessLog gets faster with Apache::LogFormat::Compiler - blog.nomadscafe.jp

    Plack-1.0023 から Plack::Middleware::AccessLog が Apache::LogFormat::Compiler を使うようになって、アクセスログの出力が速くなりました。 これまでの PM::AccessLog はリクエストの度に ログフォーマットの文字列を正規表現でパース、必要なメソッドを呼び出してアクセスログを生成していましたが、ALFCは初期化フェーズで ログフォーマットの文字列を1つのperlのコードに変換してしまうので、低コストでログを生成することができます。 以下ベンチマーク結果。アクセスログを有効にしただけのHello Worldだと、1.5倍くらい早くなる模様。memcachedに数回リクエストを送るだけのアプリケーションならプロダクション環境でも効果があるんじゃないでしょうか。ちなみにサーバを介さないベンチマークだと6倍ぐらい高速になっ

  • Plack::Middleware::AxsLog supports LTSV format! - blog.nomadscafe.jp

    固定フォーマットしかサポートしないけど、Plack::Middleware::AccessLogより軽い PM::AxsLogがLTSVフォーマット形式のログに対応しました https://metacpan.org/release/KAZEBURO/Plack-Middleware-AxsLog-0.03 PM::AxsLogについては Perl 2012 advent calendar hacker に書いてます。 AxsLog - Yet Another AccessLog middleware - Perl Advent Calendar Japan 2012 Hacker Track LTSVフォーマットについては次のページを参考にしましょう Labeled Tab-separated Values 【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてな

  • 1