タグ

rackに関するkakkunpakkunのブックマーク (8)

  • 最近の Rack サーバ事情について - おもしろwebサービス開発日記

    先月、heroku推しサーバが unicorn から puma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ

    最近の Rack サーバ事情について - おもしろwebサービス開発日記
  • Rails 3 middleware modify request headers

  • uu59のメモ | Rails(Rack app)とNodeを両方動かしてストリーミングしたい

    Rails 4でSinatra::Streaming相当のストリーミング機構が入るとのことですが、そもそもRackやEventMachineに寄り添ったストリーミングは筋悪というか強引すぎると考えていて(Phusionの人の懸念に近い)、それなら最初から向いてるテクノロジーを使ったほうがいいよねと思いNode.jsを触ることにしました。 といってもストリーミングのためだけにすべてをNodeで書く気はなくて、メイン部分をSinatraやRailsで処理し、ストリーミング部分(EventSourceやWebSocket、あるいはSocket.IOに丸投げ)をNodeで処理し、この2つがZeroMQかなんかでプロセス間通信するのが理想かなと思っています。つまりクライアント(ブラウザ)はまずRailsに接続し、そこでnew EventSource('http://host:8080/sse')みた

  • Authenticationというgemを作りました - Fujimura

    authenticationというgemを作りました。一言で言うと認証ライブラリです。 Railsは3.1くらいからhas_secure_passwordってパスワード用のちょっとした関数を使えるようになったので、ちょっとログイン周りの処理を書けば、dから始まる二郎系認証ライブラリを使わなくてもログインできちゃうわけです。 そうなると俄然自作したくなりますよね。皆さん秘伝の認証ライブラリをlib以下にぶち込んでいらっしゃることかと思います。私も同様です。 で、それが1年ほど実戦経験を積んで味が落ち着いてきたので、そろそろ外に出そうかと思って整理したのがこのライブラリです。 使い方は簡単です。サンプルもしくはspecをご覧ください。 サンプルはここで動いています。ぜひログイン・ログアウトしてみてください。 ちなみにhas_secure_passwordはActiveModel::Secure

    Authenticationというgemを作りました - Fujimura
  • 満足せる豚。眠たげなポチ。:CGI から Mongrel まで、Rack で Web アプリを Web サーバから抽象化する

    Rack ってなに? Rack は Web サーバと Ruby プログラムや Ruby で書かれた Web アプリケーションフレームワークとの間に、最小限のインターフェースを提供します。 http://rack.rubyforge.org/ Rack のインストール gem install rack Rack の簡単な始め方 Rack を使うには、まず call されるアプリケーションを書きます。call メソッドを定義し、引数に env を取ります。 # app.rb require 'rack' class TinyCaller def call(env) [200, {'Content-Type' => 'text/html'}, ["Hello, World."]] end end 続いて、Rack を使うための DSL ファイルとなる .ru ファイルを作成します。 # tiny

  • HTTPで正しくキャッチボールをするには | Lab by engineering@dwango.jp

    皆さんはキャッチボールは好きですか? 私はバスケットボールの方が好きです。 キャッチボールは、自分と相手双方がボールをうまくキャッチできるように投げる必要があります。これは、サーバーとクライアントの間でも同じで、クライアントから投げられたボール(リクエスト)をサーバーは正しく投げ返す(レスポンス)必要があります。 ここで、サーバーがボールをあさっての方向に投げたり、異常なスピードで投げ返すとどうなるでしょうか。おそらくクライアントはそのボールを取ろうとしますが、追いつけずにボールを落としたり、どこかにぶつけたりしてしまうでしょう。 今回は、HTTPについて、どうして正しくレスポンスを返さないといけないのかということについて、Rackを使用して解説していきます。 対象読者 Webアプリケーション開発に興味のある方、これから開発を行おうとしている方 Rackについて まず、今回使用するツール

  • Rack アプリケーション向けの HTTP サーバ Unicorn の基本操作

    Table of Contents Open Table of Contents Unicorn とは? Unicorn のインストールと事前準備 Unicorn の設定ファイルを用意する Unicorn サーバを起動する nginx と Unicorn を連携する Unicorn を停止する Unicorn の設定の再読込 サービスの提供を止めずにプログラムの再読込 Unicorn とは? Rails、Rack アプリケーションを動作させるコンテナとしては、Passenger、Thin、Mongrel などの選択肢がある。 それ以外にも Unicorn という Rack アプリケーション向けの HTTP サーバがあり、今回試しに使ってみたのでそのメモ。 Unicorn: Rack HTTP server for fast clients and Unix 設計方針に特徴的な部分があり、以

  • Rackアプリ開発するならPowはもう常識だよね〜 - Meltdown Countdown rev.

    Pow自体については、Rails Hub情報局: Node.js+CoffeeScriptで書かれた「Pow」がカッコ良すぎる件 を参照してもらうのがよろしいかと。要点のみ引用させてもらうと、 Powの売りは、「Zero-configuration」(設定要らず)ということで、複数のRails/Sinatraアプリをローカルで動かして開発するようなときに、仮想的なドメイン名を手軽に割り当ててアクセスできるようにしてくれる、というものです。 とのこと。複数のRackアプリを開発してるとこういうものがあると確かに便利ですよね。いちいちポート指定して起動したり/etc/hosts書き換えたりしなくてもいいわけなので。 インストール 公式サイト を参照するとインストールがなんと簡単なこと。 $ curl get.pow.cx | sh これだけで入るとな。そのインストールシェルの中身をみてみると

    Rackアプリ開発するならPowはもう常識だよね〜 - Meltdown Countdown rev.
  • 1