nginxでX-Accel-Redirectを使う場合に余計なヘッダを削除する

アプリケーションで認証後 S3 のコンテンツを返したかったのだけど、nginx で BASIC 認証を掛けていたらうまくいかなかった、というお話。 Amazon S3 の認証トークン付き URL をアプリケーションで生成し X-Accel-Redirect ヘッダに出力 nginx が S3 から取…

OMRON の UPS BY35S を Linux と使う

先日引っ越して自宅サーバを移動したところ、まれにサーバの電源を取っている子ブレーカが落ちることが判明。HDD が壊れたらたまらないので、今まで自宅では使っていなかった UPS を導入することにした。前の会社では APC の UPS ばかり使っていたので、惰性…

#qpstudy 05 に参加 & LT してきました。

qpstudy は第1回から皆勤賞です。回を重ねるごとに女性の参加者が増えるというのは、何かすごい現象を目の当たりにしている気がします。メインのディストリビューション対決は、対決といいつつ皆さんの愛を感じました。Linux 以外の OS でも見てみたい。本編…

KVM にインストールした CentOS-5.5 のタイマー調整

kvm

調子に乗ってゲストをばしばし clone して増やしていたら、気がついたら host の CPU 負荷 (sys) が妙に高い。host で vmstat を見てみると、cs (context switches) の値が 1 guest 起動するごとに 8000 ぐらい増える。割り込み発生しすぎ、ってことですね。…

LVM にインストールした仮想マシンのディスクをあとから増やす方法

host 側に LVM でパーティションを切って、そこに KVM なりなんなりの仮想マシン (guest) をインストールした場合、あとから guest のディスクを増やすのにはこんなふうにすればいいかな、というメモ。まず host 側で LVM パーティションを作成し、そこに gu…

Kamakura.pm techtalk #1 (とか転職のお知らせとか

Kamakura Perl Mongers 発足ということで、テクニカルトーク #1 にスピーカーとして参加してきました。 # というかスピーカー枠に埋められていたというかスライドはこちら→Sys::Virt で仮想マシン操作 ですが、かなり手抜きですみません。トークの後半分ぐら…

JPerl Advent Calendar 2010 casual track に記事を書きました

今年もあとわずかですね。年末恒例の JPerl Advent Calendar、casual track に記事を書きました。 MySQL と SQLite に対応した DBIx なモジュールを PostgreSQL に対応させる Tips いくつか まあ誰得な内容なんですが、自分のやってきた作業をまとめて記録し…

OSX で共有メモリのサイズ変更

OSX で PostgreSQL を起動する際に、共有メモリの最大サイズを変更する必要がある場合は以下の方法で。 # sysctl -w kern.sysv.shmmax=1073741824 # sysctl -w kern.sysv.shmall=1073741824ここでは 1GB に設定。

mod_pagespeed をちょっとだけ試してみた

Google の Page Speed の Apache module 版 mod_pagespeed をインストールして、ちょっとだけ動きを見てみた。インストールは Ubuntu に deb パッケージで。 $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb # sudo…

Digest 認証と Reverse proxy の話

昨晩 twitter で、「バックエンドのほうで Digest 認証されているところに mod_proxy で Reverse proxy できない」という話があったのでちょっと試してみた。 あれ?mod_proxyとかだとdigest認証出来ないのか?リバースプロキシにアクセスした時点で認証させ…

YAPC::Asia2010で「nginx & Perl」の発表をしてきました

YAPC::Asia2010 で、「nginx & Perl」という題名で20分の発表をさせていただきました。 発表資料はこちらにあげてあります 内容はざっくり nginx とおもしろげなモジュールの紹介、組み込み Perl の使いかたと注意事項、Plack Server に Reverse Proxy する…

YAPC::Asia2010 iPhone アプリの顛末とか

後夜祭が終わって帰宅途中、不意に 今更 #yapcasia のiPhoneアプリ顛末について飛び込みLTすればよかったなぁと思いついた。後の祭り。2010-10-16 23:09:56 via TwitBirdと思ったのですがこれはまさしく後の祭り。なのでせめて顛末を書いておきます。YAPC::A…

インフラエンジニア勉強会 #qpstudy 03 で Perl の話をしてきました

キユーピー3分インフラクッキング-初心者にも優しいインフラ勉強会- #qpstudy にて「Perl とうまく付き合う」というお題で発表させていただきました。 最初は「インフラエンジニアのための……」という仮題だったのですが、資料を作ってみたらそんなかんじでも…

nginxで特定ホスト以外からのアクセスをメンテナンス画面にする方法

Apacheで特定ホスト以外からのアクセスをメンテナンス画面にする方法 - 元RX-7乗りの適当な日々 の nginx 版。nginx.conf でこんな感じですかね。 http { server { listen 80; root /tmp; error_page 503 /503.html; location / { if ($remote_addr ~ ^127\.…

インフラ勉強会 qpstudy#2 で法定停電を乗り切るLTしてきた

キユーピー3分インフラクッキング 第2回で、法定停電を乗り切る方法について LT をやりました。内容は要するに、発電機でサーバを動かしたよ!という話です。枠がビアバッシュのほうだったので、わりとこんなネタでもいいかなと… スライドはここにあげました…

node.js で reverse proxy を書く

ちょっと書いてみたくなったので書いた。実用性とか気にしちゃいけない。 $ node reverse_proxy.js d.hatena.ne.jp reverse proxy to d.hatena.ne.jp http://localhost:8000これで localhost:8000 → d.hatena.ne.jp の reverse proxy になります。やってるこ…

node.jsでTwitter ChiarpUserStreamを閲覧するWebアプリを作った

先日 Perl + AnyEvent で作った TwitterのChirpUserStreamsをダラ流しするWebApp を、node.js で作ってみました。 node.js というのは、「JavaScript V8 Engineでイベント駆動I/Oなネットワークサーバを書くためのフレームワーク(実行環境)」ということでい…

OAuth::LiteでOAuth対応のHTTP::Requestを作る方法 (Perlでtwitter bot書いてる人向け)

最近人気エントリーに便乗したネタが多くてすみません。実用! PerlでコマンドラインからTwitter投稿(OAuth対応) では、Net::Twitter を使って OAuth で投稿する方法が紹介されていますね。ところで、単純な twitter bot 作るのに Net::Twitter 使います?…

たった*行のコードでHTML取得&解析をしたい場合はWeb::Scraperが便利

なんか無茶振りされたので。 簡単!たった13行のコードでHTML取得&解析をするPerlスクリプト を Web::Scraper というモジュールを使って書き直すと、こんな感じになります。 use strict; use Web::Scraper; use LWP::UserAgent; use Encode; my $scraper …

Server::Starter 配下で動くサーバを Perl 以外で書く

Server::Starter の SYNOPSIS には、自分で Server::Starter 配下で実行するサーバを作る場合の例があります。 # in my_httpd use Server::Starter qw(server_ports); my $listen_sock = IO::Socket::INET->new( Proto => 'tcp', ); $listen_sock->fdopen((v…

キユーピー3分インフラクッキング #qpstudy で Plack などについて話してきました

キユーピー3分インフラクッキング -初心者にも優しいインフラ勉強会-の記念すべき第1回で、「Perl & Web Servers」というお題で発表させていただきました。 「初心者に優しい」というテーマだったので、199x 〜 200x 年の Perl と Web Server の関係について…

新しいPerlに今まで使ってたモジュールをまとめてインストールする

Perl-5.12.1 がリリースされたということで早速インストールされたかたも多いと思いますが、新しい Perl にモジュールを全部入れ直すのは面倒ですよね。ExtUtils::Installed を使うと楽ができます。 今まで使ってる perl でインストールされているモジュール…

Twitter の ChirpUserStreams をダラ流しするWebAppを作った[かなり暫定版]

Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 が大変注目されているということで、UserStream を使って自分の Time Line をだだ流す Web Application を作ってみました。まず最初に留意事項ですが、follow などの event が発生した時点…

カジュアルPerl #02 で Lightning Talk してきました

カジュアルPerl #02 - 春のPerlフレッシュマンアワー で、LT をやらせていただきました。 今回は Editor と CPAN 特集ということなので「Edit with Emacs と Perl の話」というネタです。スライドは こちら に置いてあります。 動画は Ustream の録画で (自…

nginx embedded perl で Accept-Language を見て振り分ける

lighttpd だけで多言語サイトを作る方法 を、nginx で。 config でもできるみたいですが(hirose31のgist)、embedded perl でもやってみた。 internal_redirect で handler が2回呼ばれることになるので、多少効率は悪そうですが、柔軟な設定を行うための emb…

DRBDで片方のDISKが飛んだ状態からの復帰

CentOS-5.2 + DRBD-8.2.6 で運用していた DRBD の、片方の DISK が故障したのでそこから復旧したメモ。故障時。その時 Primary だったほうの DISK が I/O error。DRBD が障害を検知して Secondary に切り替わり。 kernel: sd 5:0:0:0: SCSI error: return co…

DBD::Pg で非同期クエリ投げっぱなし

# チラシの裏です重いクエリをエミュレートするために Pl/PgSQL で sleep() を用意。(busy loop するので CPU 使います) http://www.issociate.de/board/post/130019/sleep_function.html create or replace function sleep (integer) returns time as ' dec…

nginx の組み込み Perl で独自の認証をかける

独自の認証機能付き HTTP ダウンローダを提供するために、nginx の組み込み Perl を使ってみました。 公式のドキュメントはこちら。EmbeddedPerlModule - Nginx Community自前の handler でリクエストをみて処理を行い、許可するなら DECLINED を返して後続…

Google Chrome のテキストエリアを外部エディタで編集する Edit with Emacs

おことわり: Windows での事情は分かりません。以下は Mac と Linux のみで確認しています。Firefox では昔は mozex、最近は It's All Text を使ってテキストエリアを emacs で編集していたのですが、Google Chrome では extension が見つからないので渋々普…

標準出力や標準エラー出力を捕まえてテストする Test::Output / Capture::Tiny

Perl で、あるコードが標準エラー出力に吐き出した内容をテストしたい場面がありました。自分でまず思いついたのは STDERR を dup して保存しておいて、ファイルにリダイレクトして、元に戻して、というやりかた。これはこれで動くのですが面倒。こういう場…