タグ

ブックマーク / hirose31.hatenablog.jp (16)

  • h2o試してみました、もしくはとりあえずサクッと既存のサイトをHTTP/2化する方法 - (ひ)メモ

    先日、HTTP/2が正式な仕様として承認されると同時に、その実装であるH2Oのv1.0.0もリリースされました。 Kazuho's Weblog: H2O, the new HTTP server goes version 1.0.0 as HTTP/2 gets finalized HTTP/2の情報はちょいちょいウォッチはしていたのですが、今までHTTP/2なサーバーを動かしたことはなく、いい機会なので自分のサイトをH2Oを使ってHTTP/2対応してみました。 https://www.irori.org 大したことはやってないのですが、Apacheでサービスしており、認証やアクセス制限、ごにょごにょ黒魔術、CGI(!)やSSI(!!)なども動いているので、ApacheをH2Oにリプレースするのは無理でした。 そこで、H2Oをリバプーとして前段に置き、Apacheを後段に置く構成にしまし

    send
    send 2015/02/21
  • リモートのマシンで、iptablesでなんかいじる前に保険をかけておく - (ひ)メモ

    #!/bin/sh # 保険をかける # echo '/root/clear-iptab' | at now + 3min # とか # echo '/root/clear-iptab' | at 13:00 # で。 # # そしたら iptables でなんかいじって、 # iptables ... (as you like) # 成功したら at の job を削除しておわり。 # atq # atrm N # 失敗したら正座して祈る。 iptables -F iptables -X iptables -Z iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT 追記: 2010-01-09 http://ya.maya.st/d/201001a.html#s20100107_1 で言

    リモートのマシンで、iptablesでなんかいじる前に保険をかけておく - (ひ)メモ
    send
    send 2010/04/08
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
    send
    send 2009/11/12
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
    send
    send 2009/11/02
  • mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ

    MySQLでいちいちshow tables;とか打つのがだるい。\tみたいなalias設定できないのかなぁ http://twitter.com/weboo/status/1658300902 おぉ、readlineのマクロを使えばいいのかー http://twitter.com/weboo/status/1658314333 なるほ!ってことでちょっと設定してみました。 # ~/.inputrc $if mysql "\C-xd": "show databases;" "\C-xt": "show tables;" "\C-xu": "select user,host,password from mysql.user order by user,host;" "\C-xb": "select user,host,db from mysql.db order by user,host;"

    mysqlでいちいちshow databasesとか打つのがめんどい→readlineのマクロで解決 - (ひ)メモ
    send
    send 2009/06/01
  • mod_log_rotate がよさげかも - (ひ)メモ

    mod_log_rotate のススメ で紹介されていた mod_log_rotate がよさげです。 http://www.hexten.net/wiki/index.php/Mod-log-rotate ドキュメントには書いてない(と思う)んですが、CustomLogのファイル名にstrftimeの書式指定が使えるようになります。 ついでに、rotatelogs より cronolog の方がフットプリントが小さそうなので、ErrorLogcronologを使うようにしてみました。 before ErrorLog "|/usr/local/bin/rotatelogs /var/log/httpd/irori.org/www.err.%Y-%m-%d 86400 +540" CustomLog "|/usr/local/bin/rotatelogs /var/log/httpd/ir

    mod_log_rotate がよさげかも - (ひ)メモ
    send
    send 2009/05/16
  • mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ

    追記: rehash(auto-rehashも含む)すると、SQL文の補完(seleでタブ打鍵とか)が効かなくなるよと、はす向かいの人に教えてもらいました。 個人的には、SQLは「mysql> help select」とかでオンラインヘルプがびょっと出るので、スキーマの補完ができるんならSQLの補完はとりあえずあきらめてもいいかなと思っています。 常々、テーブル名とか補完できるといいなーと思っていたので、ボロっときいてみたら教えてもらいました。あざーーーーっす! id:mikihoshi++ id:tokuhirom++ id:precuredaisuki++ おかげで効率が300%上がりました。(Benchmark::Stopwatchで計測) http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option

    mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ
    send
    send 2008/01/24
  • 離れたところからGrowlで通知 - UDPのパケットをSSHでポートフォワードする方法 - (ひ)メモ

    Growlに、LANの外のマシンから通知リクエストを投げたい。 Growlは、リモートから通知リクエストを受ける機能がある。 UDPの9887番ポートを使用 が、Growlが動いているマシンと通知リクエストを行うマシンは、それぞれ異なるLANに属していて、直接通信できない。 そんなときお手軽便利なのは、SSHのポートフォワード。これでずるっとトンネルを開通すればいい。 が、TCPのパケットしかポートフォワードできない。 stoneにはUDPとTCPとを相互変換する機能があるらしい。 仙石浩明の日記: stone に UDP ⇔ TCP 相互変換機能を実装 少なくともstone-2.3dではこの機能が実装されている。(stoneのサイトからダウンロード可能) というわけで、 発信側のマシン Net::Growlとかで発信 stoneでUDPをTCP化 SSHのポートフォワード 受信側のマシン

    離れたところからGrowlで通知 - UDPのパケットをSSHでポートフォワードする方法 - (ひ)メモ
    send
    send 2007/10/22
  • (ひ)メモ - もう時効だから話す - はじめてのtcsh -

    ログインシェルをcshからtcshに変えたかった。 でもその方法を知らなかった。まだ無知だったのだ。 それでもtcshに変えたかった。どうしても変えたかった。 そしてひらめいた。 「~/.cshrcのオケツでtcsh実行すればいいんでない!? ハイハイ天才がきましたよー ヽ(≧▽≦)ノ」 そしてオケツに「tcsh」を挿入した。なんの迷いもなかった。 付け加えるなら、このとき ~/.tcshrc というファイルはまだ作ってなかったし、execというものも知らなかった。あまりにも無知だったのだ。 そして動作を確かめるべく、ログインしなおした。 ・・・なにかがおかしい・・・ いつもみなれたコマンドプロンプト「saturn% 」が出てこない。そのうち「サーバが重い」という声が聞こえ始めてきた。 となりにいた友だちのターミナルで、psコマンドでぼくのプロセスを確認した。 そこには待ち焦がれていたぼく

    (ひ)メモ - もう時効だから話す - はじめてのtcsh -
    send
    send 2007/08/17
    名文
  • ファイルを変更したら自動的にreloadする方法 - (ひ)メモ

    ファイルの更新を監視して、変更されたらMozReplなFirefoxさんにreload指令を送る。 コンテンツのファイルをいじってて、いちいちF5するのがめんどいので。 reload指令を受理できるように MozLab - Trac をインストール。 ツール→MozLab→Start Replで開始。 extensions.mozlab.mozrepl.autoStartをtrueにすれば、動きっぱなしにできるのかも。 4242でlistenしてるのはlocalhostだけなので、他のマシンからtelnetしたいときは、パケットリピータを使う。 例えばstoneを使って、 4242宛てのパケットをlocalhost:4242にリピートする ただし、接続を許可するのは10.6.25.201と10.6.25.202からのみ とするときはこんな感じ: stone -nr localhost:42

    ファイルを変更したら自動的にreloadする方法 - (ひ)メモ
  • 疎結合なディスクレスサーバ - (ひ)メモ

    「そもそもOSインストールするのも面倒だよね、ディスクあると障害確率も上がるし。」という話もあって、今後は iSCSI か NFS かでマスタファイルサーバーを作り、PXE ブートしてそれを root ごとマウントしてディスクレスにしようかなと計画しています。 http://d.hatena.ne.jp/naoya/20070328/1175067451 これだとマスタファイルサーバとディスクレスサーバの結合度が密なんじゃないすかね。その弊害として、マスタファイルサーバが停止するとディスクレスサーバが全滅しちゃうんじゃないかと思うんす。(マスタファイルサーバがステキにフェイルオーバできるなら話は別ですが) なので、 マスタファイルサーバはrootファイルシステムのイメージを保持して配信するだけ。 ディスクレスサーバはもらったrootファイルシステムをメモリ上に展開後、pivot_rootし

    疎結合なディスクレスサーバ - (ひ)メモ
    send
    send 2007/03/29
    なるほど
  • (ひ)メモ - Net::SSL::ExpireDate + Test::Base で証明書の期限切れをチェック

    拙作のNet::SSL::ExpireDateとTest::Baseとで証明書の期限切れをチェック。 こんな感じの出力。 $ prove -v sample/cert-expire.t sample/cert-expire....1..2 ok 1 - rt.cpan.org ok 2 - www.google.com ok All tests successful. Files=1, Tests=2, 5 wallclock secs ( 0.33 cusr + 0.03 csys = 0.36 CPU)で、期限切れのがいるとこんな感じに。 $ prove -v sample/cert-expire.t sample/cert-expire....1..2 # Failed test 'rt.cpan.org' # in sample/cert-expire.t at line 27.

    (ひ)メモ - Net::SSL::ExpireDate + Test::Base で証明書の期限切れをチェック
    send
    send 2006/11/22
    これはいい
  • MacBookセットアップメモ - (ひ)メモ

    MacBookが来たのでPowerBook G4からデータ移行などを。なんかものすごく早いんすけどナンスカこれ。Intel Macスゴー! X11 付属のDVDからインストールする。X11 for Mac OS X - Appleにいっても10.4用のはダウンロードできないのでDVDから入れる。 SloppyFocusにする。 defaults write com.apple.x11 wm_ffm true Xcode これも付属のDVDから。gccとか開発環境一式が入る。 Fink Intel Mac用のバイナリはまだないみたい。なので、fink-0.24.18.tar.gzをダウンロード&展開して./bootstrap.shでコンパイル。coreutils-defaultをはじめ、めぼしいのがstableにはないので、/sw/etc/fink.confのTreesにunstable/m

    MacBookセットアップメモ - (ひ)メモ
    send
    send 2006/08/15
  • (ひ)メモ - そんなわきゃない>DNS RRはロードバランサの座を奪い返せるか

    チープなDNSラウンドロビンは高価なロードバランサの座を奪い返せるか つっこみどころが満載スギなのは脇においておいて、金をかけないなら、DNSラウンドロビンじゃなくて、せめて、件の記事でも紹介されている Apache 2.2のmod_proxy_balancer か、Apache 2.2じゃなくても使えるreverse proxy系の実装たち、 POUND mod_backhand Perlbal を使うべきでしょう。 んで、「L7ロードバランサ(要はreverse proxy)なんていらねっす。セッション? んなのmemcachedでシェアすりゃいいんじゃん。その方がスケールアウトしやすいしー」という向きには、LinuxでL4のロードバランサするのをオススメでします。まともなL4ロードバランサが手に入るのに、金銭的コストはゼロですってよ、オクサン! Linux Virtual Serve

    (ひ)メモ - そんなわきゃない>DNS RRはロードバランサの座を奪い返せるか
    send
    send 2006/08/14
    正直UltraMonkeyだと何でもできる気がする。
  • 負荷対策概論 - Y-110's Wiki - (ひ)メモ

    # トラックバックうてるといいのに。 DB接続のプーリング PHPの*_pconnect系だとhttpdのプロセス分だけ接続が必要で、無駄といえば無駄。 なので、SQL Relayなんかを使うのもアリかと。 ロードバランサ Poundやmod_proxy_balancerもいいけど、Linuxマシンでlvsすればお高いロードバランサ要らずっす。 all in oneならUltra Monkeyがいいけど、中身を理解して弄りたい向きにはkeepalivedがおすすめ。 I/Oパフォーマンス 3wareのハードウエアRAIDカードなんかには、割とでかい(128MBとか)ライトキャッシュがついてるす。これ、ちょー強力。しびれるぐらいI/Oが早くなります。ライトキャッシュ使うときはBBUもお忘れなく。

    負荷対策概論 - Y-110's Wiki - (ひ)メモ
    send
    send 2006/06/05
    Ultra Monkeyいいよ。
  • リモートホストとdiffる - (ひ)メモ

    bashの「Process Substitution」という機能で、コマンドの実行結果を名前つきパイプから読めます。(thx かつみくん) $ cat -n <(date; echo foo) 1 Wed Jan 18 21:38:30 JST 2006 2 fooこれを使って、リモートホストのファイルとdiffを取るシェル関数を作ってみました。 こんな感じで使えます。 $ rdiff -u ~/s.txt REMOTE_HOST:~/d.txtまた-Rオプションで、rsyncの-R, --relativeオプションの様にローカルホストのパスをリモートホストの相対パスとして指定できます。たとえば、ローカルホストの/very/very/long/path/t.txtとリモートホストの同じパスのファイルをdiffるときには次のようにしてリモートホスト側のパス指定を略記することができます。 $

    リモートホストとdiffる - (ひ)メモ
    send
    send 2006/01/21
    これはいい。早速使わせていただく。
  • 1