タグ

ブックマーク / tkng.hatenablog.com (4)

  • なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改

    完全に釣りタイトルですけど中身は真面目に書くよ。 近年、ウェブサイトのHTTPS化が流行のようになっている。私の知る限り、Googleの各種サービスやTwitter、Facebookなどが完全にHTTPSで通信を行うようになっている。HTTPS、つまりSSLによる通信の暗号化によって、ユーザにこれまでよりも安全なウェブサイトを提供できる。 しかし、あなたが作っているサイトをふと思いつきでHTTPS化してしまうと、たぶん、これまでよりもサイトが遅くなる。ここでは、HTTPSで通信する場合の問題を解説する。 なぜ遅くなるのか HTTPで通信する場合、クライアントがサーバへと接続するためにはTCP/IPの3ウェイハンドシェイクという手順が必要になる。めんどくさいのでここでは詳しくは説明しないが、要するにクライアントがリクエストを投げる前にパケットを1往復させないといけないのである。パケットの往復

    なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改
  • サルでも分かる多段ssh - 射撃しつつ前転 改

    仕事をしていると、お客さんの環境にログインするため、 踏み台マシンを経由する必要がある 踏み台マシンへのログインすら、特定範囲のIPアドレスからしか受け付けてくれない といった厳しい条件を満たさなければならない場合があり、多段にsshをしなければいけないことがある。しかし、単純な多段sshには、 毎回順繰りに多段ログインするのは結構めんどくさい scpでいちいち中継サーバーにコピーしていく必要があり、中間サーバーのディスク容量が足りない場合に大きなファイルがコピーできない といった問題がある。 実は、sshには設定ファイルがあり、設定を行うことで、間に何台のサーバーを挟んでいようとも、あたかも直接アクセスしているかのように接続することができるのであるが、世間的にはあまり知られていないようだ。知らないのは非常にもったいないので、簡単に説明しておく。 設定ファイルは~/.ssh/configに

    サルでも分かる多段ssh - 射撃しつつ前転 改
  • Railsのbefore_filterみたいなのをSinatraで実現できるか - 射撃しつつ前転 改

    Railsは便利だとは思ったがフレームワークとしてとくに好きではなかった(別に嫌いでもない)。それに対してSinatraはなんだかよくできてる感があって気に入っている。この差がどこからくるのかはよくわからないが。 そんなSinatraとRailsであるが、比較してみると、フィルタまわりは圧倒的にRailsの方が高機能である。Sinatraのフィルタはbeforeという一種類で、しかも共通処理を書けるだけである。こんな感じ。 before do if not logged_in? redirect '/' end endRailsと比べると 呼ぶタイミングがbeforeしかない。Railsだとbefore_filter, after_filter, around_filterの3種類のフィルタがある。 どのメソッドに対してフィルタ処理を行うかを制御できない。Railsはbefore_filt

    Railsのbefore_filterみたいなのをSinatraで実現できるか - 射撃しつつ前転 改
  • Apacheのmod_proxy_balancerを使うときはretryを設定すべき - 射撃しつつ前転

    今作っているサービスは、Apacheのmod_proxy_balancerを使ってロードバランシングしている。しかし、バックエンドのサービスサーバを一旦落としてから復帰させると、コネクションがしばらくつながらないという問題に悩んでいた。1分ぐらい放置するとつながるようになるんだけど、1分は結構長い。 よくわからないのでソースを読んでみたところ、mod_proxy_balancer.cを眺めた感じ、ap_proxy_retry_workerという関数がコネクションの再確立をしているのではないかと思えた。しかし、関数の定義を眺めてみると、現在時刻がエラー発生時刻とworker->retryを足した数字よりも大きければworkerのstatusからPROXY_WORKER_IN_ERRORのビットを下ろしているだけで、コネクションの確立がどうのこうのなんて関数はまったく呼ばれてない。ここでなにが

    Apacheのmod_proxy_balancerを使うときはretryを設定すべき - 射撃しつつ前転
  • 1