![http://dl.dropboxusercontent.com/u/224433/plackcon/index.html](https://cdn-ak-scissors.b.st-hatena.com/image/square/458d2d7694149bdbe3a49301ca701fd5b38dc6f3/height=288;version=1;width=512/http%3A%2F%2Fdl.dropboxusercontent.com%2Fu%2F224433%2Fplackcon%2Fimages%2Fisucon-net-sc.png)
割と良く見る間違いです builder { enable "ServerStatus::Lite", path => '/server-status', allow => [ '127.0.0.1', '192.168.9.0/24'], scoreboard => ..; enable 'ReverseProxy'; $app; }; これは間違いです。リバースプロキシ配下にてアプリケーションサーバを起動すると、/server-statusに対して全世界からアクセス可能になります Plack::Middleware::ReverseProxyがX-Forwarded-Forヘッダをみて、REMOTE_ADDRを書き換える前、上の図の状態でPlack::Middleware::ServerStatus::Liteが実行されてしまうので、/server-statusへのアクセスが許可されてし
「kazeburo さんの Proclet をもちいた劣化 foreman の実装 - tokuhirom’s blog.」に STDOUT にタグつけたりはしてないけど、とりあえず起動はできる。STDOUT にタグつけるのは pipe で処理かまさないとだめなのでちと面倒 と書かれていたので、その面倒な事をProclet側で実装してみた。 https://metacpan.org/release/KAZEBURO/Proclet-0.09 プロセスの数だけpipeを作って、各プロセスでSTDERRとSTDOUTをpipeに結びつけ、ログ処理専用workerがそれをselectしつつ読み出すという設計になっています 使い方 my $proclet = Proclet->new( color => 1 ); $proclet->service( code => sub { my $loade
Plack::Middleware::ServerStatus::Lite 0.07 でステータス画面に起動してから処理したアクセス数がだせるようになりました。監視ツールと組み合わせてリアルタイムに処理しているアクセス数を確認できます。 Middlewareを読み込む際に counter_file に記録用のファイルを指定すると利用できます。デフォルトは無効です use Plack::Builder; use File::Temp qw/tempdir/; builder { enable "Plack::Middleware::ServerStatus::Lite", path => '/server-status', allow => [ '127.0.0.1', '192.168.0.0/16' ], counter_file => '/tmp/counter_file', scor
PSGIとPlackと 〜 軽量フレームワークAmon2入門 (3) 〜 さて、今回は裏をかいて、いったん本題のAmon2の話からはずれて、PSGI/Plackのはなしをしましょうかね。 PSGI/Plackは基本的にはアプリを書く人は知る必要はあまりないのですが、概念ぐらいは知っておくにこしたことはない、というところです。 さて、数年前のYAPCでわたくしが口を酸っぱくして申し上げたことを皆さんはおぼえているでしょうか。そう、一番大事なのは「PSGIは仕様。Plackは実装」ということなのでした。ここだけ把握していれば十分なので、PSGI/Plack の詳細に興味がない人はブラウザの Back ボタンを連打してください。 PSGIってなんだ?PSGIとは「ウェブアプリケーションとアプリケーションサーバーの間のプロトコルのこと」です。Perlの基本的なデータ型であるArrayRef, Ha
先日Twitterでも言及したけど、PerlでWebSocketを使いたい場合は、Socket.IO(WebSocket未対応のブラウザの場合はFlash Socket, Ajaxなどで同等の処理を実現できる)のサーバサイド実装であるPocketIOが使えます。 CPANには同作者のPlack::Middleware::SocketIOがありますが、GitHub - vti/plack-middleware-socketio: Socket.IO Perl/Plack implementation DEPRECATED USE PocketIO INSTEADに Socket.IO Perl/Plack implementation DEPRECATED USE PocketIO INSTEAD とあるので素直にPocketIOを使いましょう。 サーバサイド実装の本家であるNode.jsの
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
HTTPサーバフレームワークとしてのPlack活用法と、Plack::Middleware::Pictogram::MobileJpを使ったその事例紹介 実はお腹回りが入らなくなってスーツを新調したhirose31です。 みなさん、Plack使ってますか? 弊社でもStarletをNginxのバックエンドに置いてプロダクション環境でモリモリ使っているのですが、ちょっとした検証にもPlackは大変重宝しています。 具体的には、キャッシュに関連するレスポンスヘッダ(Last-Modified、Expiresなど)の組み合わせと、条件付きGETやブラウザキャッシュの挙動をブラウザごとに調べたときに使いました。あくまで検証用と割りきって特にファイル分割などはせず、psgiファイルにゴリゴリっとベロっとコードを書いてパパパっと検証用のHTTPサーバを作りました。 このように、限定された目的のHTTP
Plack──PSGIユーティリティ PSGIのおかげで、フレームワークはCGIやFastCGI、mod_perlといった環境の差異を吸収するためのコードを書く必要はなくなり、PSGIのインタフェースだけを実行すればよくなりました。実際に多くのフレームワークがすでにPSGIをサポートしていますが、さて、そうしたアプリケーションをどうやって動かせばよいのでしょうか。 Apacheなど既存のWebサーバでPSGIアプリケーションを動かすには、CGI、FastCGI、mod_perlなどのインタフェースをPSGIに変換する必要があります。また、PSGIをネイティブで実行できるPerlベースのHTTPサーバもほしいところです。 Plackはそうした要件を満たすためのユーティリティで、リファレンス実装としてのPSGIサーバやそれらへのアダプタ、周辺ライブラリや後述するミドルウェアが含まれています。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く