タグ

plackに関するshagのブックマーク (10)

  • h2o の fastcgi サポートで Plack::Handler::FCGI を動かす - tokuhirom's blog

    h2o で PHP を FCGI で動かすという話題が最近見かけますが、もちろん h2o+FCGI+Perl も快適に動作します。 具体的には以下のように書けばよろしい。 listen: 9090 hosts: default: paths: /: file.dir: /path/to/htdocs/ fastcgi.spawn: "exec /opt/perl-5.18/bin/plackup -s FCGI --nproc 10 /path/to/app/" 簡単すぎて、とくに解説することがないです。 h2o+FCGI で運用した場合のメリットとして、Starlet 等の application server を立ち上げる場合と異なり、application server のプロセスを daemon tools や systemctl 等で管理する必要がないというメリットがある。 一方

    shag
    shag 2015/06/30
  • Which should I use: Starman or Starlet?

    A discussion came up on #plack IRC channel earlier, and we realize that there’s no good (official) documentation available to address the differences between the two popular Plack HTTP servers, Starman and Starlet. Besides the similarity in their names, they are actually similar in what they do: they do serve HTTP requests, and the process model is pre-forked (i.e. fork off a number of HTTP worker

  • MojoliciousでPlack::Middlewareを使う - $shibayu36->blog;

    MojoliciousでPlack::Middleware::CSRFBlockを利用したかったので、どうやって使うか調べてみました。 Mojoliciousの場合、Plack::Middlewareを利用するにはscript/sampleのようなサーバ起動用スクリプトをPlack::Builderを使うようにすると、利用出来るようになります。以下のように書きます。 #!/usr/bin/env perl use strict; use warnings; use File::Basename 'dirname'; use File::Spec; use lib join '/', File::Spec->splitdir(dirname(__FILE__)), 'lib'; use lib join '/', File::Spec->splitdir(dirname(__FILE__))

    MojoliciousでPlack::Middlewareを使う - $shibayu36->blog;
  • [メモ] Starlet 0.22のリリースに伴いThundering Herd問題を再訪した件

    @takezawaさんから、PerlベースのWebアプリケーションサーバであるStarletで複数ポートをlistenできるようにするPRをいただいたのでマージしました。やったね! で、それに伴いprefork型TCPサーバのThundering Herd問題を再訪したので、その備忘録。なお、Thundering Herd問題については、prefork サーバーと thundering herd 問題 - naoyaのはてなダイアリーや、Starman と Starlet のベンチマークと Accept Serialization - Hateburo: kazeburo hatenablogあたりを参照のこと。 まず、こんなテストスクリプトを書いた: thundering-herd.pl こいつを書いてあるコメントのとおり実行してみることで、2種類のケースでThundering Herd

  • PSGI/Plackアプリケーションの起動方法いろいろと本番環境アレコレ - blog.nomadscafe.jp

    PSGI/Plack/PSGIアプリケーションを動かす時に一番使われているのは plackup でしょう。 $ cat app.psgi use Plack::Builder; use MyApp; my $app = MyApp->psgi_app; builder { enable 'ServerStatus::Lite', => ..; $app; }; $ plackup -E production -s Starlet --max-workers 30 --port 5000 -a app.psgi plackup コマンドの -s にハンドラ名を指定して起動します。番環境では -E や $ENV{PLACK_ENV} を指定してStackTraceやLintといった開発に便利なPlack::Middlewareが追加されないようにする必要がありますね。 Starmanの場合は

  • Plack時代のReverse proxyによるサーバー運用方法 ~YAPC::Asia2010の復習(後編)~ | hirobanex.net

    後編を書く前に、YAPC::Asia2011が終わってしまったので、変な勘違いをされるかとやめようかと思ったのですが。。。とりあえず、YAPC::Asia2010の復習として、Plack時代のPerlによるサーバ運用では、わりと一般的なリバースプロクシによる運用を、このブログの実例で報告します。 前置き:plackupはわかったけど、実際どうするの? 「Perlは遅い」の原点だったApacheのcgi時代は終わりを告げ、Apacheに依存したmod_perl時代も終りを告げました。Plackを使えば、CGIだろうとmode_perlだろうとPerlのスタンドアローンサーバーであろうと、かなり汎用的に動かせる時代です。mod_perlとかFastCGI前から使っていれば、あるいは、「Rubyではふんふん、Pythonではふんふん」とか語れれば、いろいろな歴史をしっているからすぐ実践しやすいと

  • Mojoliciousアプリを UpStart + Sarver::Starter + Starlet で運用してみる

    Mojoliciousアプリを UpStart + Sarver::Starter + Starlet で運用してみる 2013.05.20 CentOS6.x perl perl, Starlet, Upstart Server::Starter + Starlet 以前はdaemontools+Starmanで起動していたのだけれど、 最近のPlack/Starletのパフォーマンス改善まとめ。最大2倍の性能向上を読んでたらStarletが使ってみたくなったのでServer::Starter+Starletを試してみることに。 コマンドラインから起動してみる。 start_server --port=3000 -- plackup -s Starlet --max-workers=5 my app.pl start_server (pid:31803) starting now...

    Mojoliciousアプリを UpStart + Sarver::Starter + Starlet で運用してみる
  • Starlet 使ってみた|perl|@OMAKASE

    CPANでPlack関連の情報はないかと漁っているとstarmanライクなPSGI仕様のサーバ Starlet があると聞いて早速ためしてみました。 http://search.cpan.org/dist/Starlet/ 今まで自分の所ではplackで利用できるWAFを自前で書いてそいつをStarman + Server::Starterを使ってで動かしていました。 Starmanでなにも問題なく動いてるので変更する意味はないのですがPSGI仕様のいい所(簡単にインターフェースを取り替えられる)を利用させてもらいちょっとだけ試してみました。 変更前の環境はフロントにlighty(mod_proxy)+バックにStarman,Server::Starterな構成です。でStarmanはdaemontoolsで起動させてます。 変更前 starman利用時のdaemontoolsのrun-s

  • 最近のPlack/Starletのパフォーマンス改善まとめ。最大2倍の性能向上 - Hateburo: kazeburo hatenablog

    最近のPlackとStarletにはパフォーマンス改善のため次のような変更が加えられています。 Plackに対する変更 (カッコ内はバージョン) Plack::Request::query_parameters の最適化 (1.0018) Plack::Middleware::AccessLog に Apache::LogFormat::Compilerの導入 (1.0023) Starletに対する変更 local $SIG{..} を無くし、rt_sig* system call が呼ばれる回数を削減 (0.17_01) headerとbodyを結合して一度に出力する閾値を1024から8192に変更 (0.18) ベンチマーク これらの変更の効果を確認するために、次のベンチマークを実行してみます まずアプリケーションはこんな感じ use Plack::Builder; use Plac

    最近のPlack/Starletのパフォーマンス改善まとめ。最大2倍の性能向上 - Hateburo: kazeburo hatenablog
  • Plack::Middleware::Auth::OAuth を作ってみた - hide-k.net#blog

    最近、咳のしすぎであばらにヒビが入りました。 大多数の人は心配をしてくださってありがたいのですが、ごく一部の極道達がおもしろ画像を連投して笑わせてくるおかげで全治が大分先になりそうです。 こんばんは。 先日、「モバイルなプラットフォームでの OAuth Signature の検証」ってエントリーを書いた際にPlack::Middlewareとかでやるべきとか書いておいて放置していたのですが、某極道が「とっとと書かないと笑わせてあばらへし折るぞ!ごるぁ!」と脅してきたのでサクッと書きました。 GitHubに置いてあります。 Plack-Middleware-Auth-OAuth 使い方は簡単。 use Plack::Builder; my $app = sub { return [200, ['Content-Type' => 'text/plain'], ['Hello World']];

  • 1