Monoceros は @kazeburo さんが開発してる Plack 用ウェブサーバ。prefork型だけど、待機中の接続をイベントドリブンのマネージャで管理することで、同時接続10,000本とか行ける(ソケットの受け渡しは SCM_RIGHTS とか使う)。で、雑感 大好き!!!Starletよ... 続きを読む
Plack-1.0023 から Plack::Middleware::AccessLog が Apache::LogFormat::Compiler を使うようになって、アクセスログの出力が速くなりました。 これまでの PM::AccessLog はリクエストの度に ログフォーマットの文字列を正規表現でパース、必要なメソッドを呼... 続きを読む
Plack::Handler::Apache2 をちょっと使ってみているのですが、本格的に使おうとすると挙動がおかしいところがあって最近手を入れています (Plack にクソパッチを送ったりして申し分けない気分にはなりますが、背に腹は変えれないので、恥を忍んで送りまくってま... 続きを読む
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n... 続きを読む
某オブジェクトストレージになぜか関わった話 2011年6月21日 17:20 D | ブログ記事のURL | コメント(0) | トラックバック(0) 今の職場ではちょっと前から「開発支援」という名目で仕事をしている。まぁ要は「ちゃんとVCS使え」「テスト書け!」「プロセスを自動... 続きを読む
この辺で書いていたHTTPコンテンツ圧縮を行うPlack::Middleware::Deflater の Co-Maintainer にして頂いたので早速アップデートしました。Plackで運用されているとおぼしきアプリケーションは圧縮掛かってないことが多いので、転送量削減、レスポンス速度向上の... 続きを読む
response body をいじる Plack::Middleware を作る場合、call で渡すコールバック関数の戻り値はサブルーチンにするのがよい(というかそうすべき?)。 sub call { my ($self, $env) = @_; my $res = $self->app->($env); $self->response_cb($res, sub { my $... 続きを読む
テスト, plack/psgi | 00:37 | 外部APIを用いたWebアプリのコントローラテストについて。 たとえば数値の2乗を結果として返すAPIサーバがあるとして、そのAPIを利用した結果をHTMLとして出力するアプリケーションを考えてみます。 しかし、このように外部APIサ... 続きを読む
perl, plack, test | 02:02 | 先日、WWW::Curl をラッピングした HTTP クライアントなモジュールを書いたのですが、テスト用に HTTP サーバーを用意しないといけないと思いつつ、他の HTTP クライアントがどのようにテストをしているか調べてみたところ、WWW::C... 続きを読む
Starmanというmiyagawaさんが目下開発中のPerl製Webサーバがあります。 PSGIをサポートして高速であることが特徴です。 おとといにバージョン0.1000がCPANにアップロードされたばかりという新しいものですが、 とあるエロサイトでStarmanを導入したので、その件... 続きを読む
CocProxy という、HTTPレスポンスの一部をローカルファイルで置き換えるプロキシがあるのだけれど、それの Plack/Perl 版を書いてみた。Plack::App::Proxy は reverse proxy を想定していて普通の proxy としてそのまま使えるわけじゃなかった ($env->{'plack.p... 続きを読む
PSGIアプリケーションをリバースプロキシー下で使う際の静的コンンツの配信は、リバースプロキシー側で行う事が多いと思うのですが、こうやるのが良いんじゃないかという案。 プロジェクトのトップディレクトリにhtdocsを作成し、その中にfavicon.ico、staticデ... 続きを読む
2010年12月31日(金) 13:39 最近の Plack::Middleware 事情 もりもり。 mount '/' => builder { enable 'Head'; enable 'ContentLength'; enable 'AddDefaultCharset', charset => 'UTF-8'; enable 'LogDispatch', logger => EasyApp::Config->get_logger($app->... 続きを読む
Session FixationXSS や事前に取得したセッションを利用者に送り込んで権限を昇格させる類の攻撃で、セッションIDをクエリに含ませたり、シーケンシャルなセッションIDを用いるような愚かなことをしなければ基本的に問題はないものの、 Session Fixation への根... 続きを読む
みなさん、Plack使ってますか? 弊社でもStarletをNginxのバックエンドに置いてプロダクション環境でモリモリ使っているのですが、ちょっとした検証にもPlackは大変重宝しています。 具体的には、キャッシュに関連するレスポンスヘッダ(Last-Modified、Expires... 続きを読む
Private Gist All pages are served over SSL and all pushing and pulling is done over SSH. No one may fork, clone, or view it unless they are given this private URL. Every gist with this icon () is private. Public Gist Anyone may fork, clone, o... 続きを読む
http://github.com/cho45/Plack-Middleware-StaticShared js とか css を纏めていっこにして配信してくれる Middleware を書きました。Plack::Middleware::JSConcat というが既にありますが、キャッシュコントロールがうまくできなかったのと、css も纏めたかっ... 続きを読む
HTML や XML なんかのケツにコメントとしてテキストを埋め込む Plack::Middleware を作ってみた。 http://github.com/ziguzagu/Plack-Middleware-Watermark やってることといえば、content type を見て適当なコメントシンタックスを選んで、指定された文字列を... 続きを読む
Read-Only HTTP Read-Only This URL has Read+Write access 続きを読む
Plack/Starman Daemontools Run File With Complete Deploy Bundle 注1:まだ本番にはデプロイしてませんが、テストでは使いました。 注2:以下スクリプトは開発者の労力を減らすためのスクリプトで、万全なデプロイ方法だとか言うわけではありません。 注3... 続きを読む