タグ

ブックマーク / unknownplace.org (3)

  • nginx で lighttpd のようにユーザーをトラッキングする方法 - unknownplace.org

    lighttpd では mod_fastcgi や mod_proxy 経由でアプリケーションが、 X-Lighttpd-Hogehoge: foobar のような X-Lighttpd- ではじまるヘッダーを返してもそれをクライアントに送り返さないという仕組みがあり、 たとえばそれを利用してアプリからユーザーIDを返してあげたりすると、それをクライアントに送ることなく lighttpd のアクセスログにだけ記録する、といったようなことが出来て便利なのですが、 同じようなことを nginx でやりたかったのでしらべてみた。 アプリから X-MyApp-User: foobar みたいなのを返してそれをクライアントに送ることなくアクセスログに記録したい場合、まずクライアントに送らないように、 proxy_hide_header X-MyApp-User; とし、さらに accesslog

  • qpsmtpd を Server::Starter 化するなど - unknownplace.org

    Perl 製 SMTP サーバーとして qpsmtpd というものがあり、僕もいろいろなところで利用している。主な用途としてはメール連動の Web アプリケーションのメール機能の部分。実際のメール配送などでは使用してない。 フロントに qpsmtpd を置き、アプリで制御する宛先の場合のみ qpsmtpd からジョブキューに流したりする。 それ以外の通常のメールは queue/postfix プラグインなどを使用して裏側の postfix にまかせちゃう。というような使い方をしている。 qpsmtpd 自体は apache.org や perl.org の SMTP として採用されており、パフォーマンスに関しては問題ないのだが、プラグインを書き換えたり設定を変更したりした場合に再起動が必要になるところが、フロントに立てるサーバーとしては不安な部分であった。 なので前々から Server::

  • AnyEvent で $poe_kernel->alias_set 的なことをする方法 - unknownplace.org

    最近 AnyEvent にはまっています。おもしろい! AnyEvent と同じ非同期プログラミングフレームワークであるところの POE では $kernel->alias_set('hoge'); などとしておくと $kernel->post( hoge => 'state' ); みたいな感じでどこからでもそのコンポーネントを呼び出すことができました。 しかし AnyEvent ではそう言った機能がないため以下のように Object::Container を使って解決することにしました。 呼び出される側: use AnyEvent; use Object::Container 'event'; my $cv = AnyEvent->condvar; $cv->cb(sub { my (@args) = $cv->recv; # ここになんか処理 }); event->register(

  • 1