いつの間にかさくらのVPSの標準OSがCentOS6になってたので設定を見直してみました。 月額980円/月から利用でき、2週間のお試し期間もあるのでこれを機会にサーバ設定に足を踏み入れてみてはどうでしょう? 慣れると10分くらいでウェブサーバが立ち上げれるようになります。 すみません。こんなに多くの人が見てると思わなかったんです。 お一人様サーバ向けのつもりで書いてます。 タイトルもタグもネタだったのにツッコまれまくりで恥ずかしい… 公開鍵登録しよう どうせ自分しか触らないなしrootで作業しちゃってもいいんじゃない? リブート(またはsshのrestart)以降秘密鍵がないとsshでログイン出来なくなるので気をつけてください。 mkdir ~/.ssh/ touch ~/.ssh/authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/au
Apache2.4.1がリリースしてから、約2週間たった。 自分が思っていた以上に、世の中の人はApacheやWebサーバに関心があるようで、この2週間でもかなりの検証や調査が行われていた。僕自身も、自分の記事をここまで見て頂けて光栄である。 ということで、2週間たったのでApache2.4.1に関して注目された(個人的に)9つの記事をまとめておきたいと思う。
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 前回の記事「Apache 2.4.1のスループット評価(旧ApacheとNginxとのベンチマーク比較)」を非常に多くの方に見て頂いており、こういう情報が重要なんだなぁ、としみじみ思った。多くのオープンソースを使わしてもらっているので、こういう形でフィードバックしていけたらよいな。参考にして頂いてありがとうございます。 今回は、前回の記事に続き、個人的にも非常に興味のあるApache2.4.1の「動的コンテンツのスループット」がどの程度なのかを評価したいと思う。 ※いくつかの検証を追加したのと、細かい部分で比較の仕方がよろしくなかったので修正を加えました。 ■ 修正と追記箇所(2012年3月2日) ・PHPのバージョンを5.3.10に統一(思
2012年3月27日(火) ■ mod_lua でリバースプロクシ _ もちろん apache 2.4、mod_lua が必要。さらに、mod_proxy と mod_proxy_http も。ProxyPass の設定は lua で置き替えるけど、よそにアクセスしにいく動作そのものは mod_proxy* がおこなうのでこいつらが不要になるわけではない。 -- httpd.conf LuaHookTranslateName /path/to/proxy.lua reverse_proxy -- proxy.lua backend = "http://127.0.0.1:8080" function reverse_proxy(r) r.handler = "proxy-server" r.proxyreq = apache2.PROXYREQ_REVERSE r.filename = "
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といいつつも、そこまで大したことはしていない。 luaという高速に動作する組み込み系のスクリプト言語で遊んでみたかったのと、それだったmod_luaで遊んでみればいいなと思っただけである。で、実際にmod_luaをコンパイルして遊んでみた。コンパイルオプションは以下。 ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-modules=all --enable-mods-shared=all --enable-mpms-shared='prefork worker event' -
普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11
Ubuntuでもそうだけど、Apacheインストール直後はlogrotateで4時くらいにログをローテートさせるのが一般的。 何か追加でインストールする必要が無い 指定した期間でローテートできる 指定した期間で削除できる 自動的に圧縮できる みたいなメリットがある。 でも逆に、 出力ファイル名を変更できない(出来るけど面倒) さらに月別にディレクトリを掘るとかが大変 ってことで、出力ファイル名を変えたい人は普通Apacheに付属のrotatelogsを使っているみたい。 でも、どうにもrotatelogsのオプションがしっくりこなくて使ってなかったんだけど、似たようなものでcronologというのがあって、そっちがしっくりきたので、簡単にメモ。 インストールはaptitudeで簡単に入るので省略。 使い方も簡単で、ログ出力指定のところにパイプで書くだけ。 CustomLog “|/usr/
Michael J. Radwin による Yahoo! でカスタマイズされた Apache や PHP の資料 2006-01-31-3: [PHP] http://public.yahoo.com/~radwin/ Yahoo! でカスタマイズされたアプリケーションについての資料. PDF や PPT などでダウンロードできる. まとめは以下のリンクがおすすめ.PHP は Apache ほどカスタマイズされていない印象を受ける. - Yahoo でカスタマイズされた apache のまとめ http://blog.bz2.jp/archives/2006/01/yahoo_apache.html - Yahoo でカスタマイズされた PHP のまとめ http://blog.bz2.jp/archives/2006/01/yahoo_php.html
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基本設定 まずは基本的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の8日目です。 前回は php のプロセス数を絞ることのメリットを解説しました。 プロセス数を絞るには FPM を使うなどの方法もありますが、 DSAS for Social では php は Apache + mod_php を使っていて、 それにリバースプロキシを組み合わせて利用しています。 今日はこのリバースプロキシの役割を説明して行きます。 以降、リバースプロキシのことを単にプロキシと呼びます。 プロキシを使う理由 そもそも、なぜプロキシを使うのかを説明しておきます。 5秒ルール ケータイ向けのソーシャルアプリでは、ユーザーからのリクエストは 一旦プラットフォームのサーバーを経由して、アプリを提供している Webサーバーに到達します。 このとき、アプリ側のレスポンスがあまりに遅いとプ
個々の Apache モジュールをロードするための DSO サポートは mod_so.c というモジュールの機能に基づいています。 このモジュール は Apache のコアに静的に組み込まれている必要があります。 それは core.c 以外では DSO にできない唯一の モジュールです。事実上、他のすべての Apache のモジュールは、 インストールの文書で説明されているように、 configure の --enable-module=shared オプションでそれぞれを DSO ビルドにすることにより、DSO モジュールにすることができます。 mod_foo.so のような DSO にモジュールがコンパイルされれば、 httpd.conf ファイル中で mod_so の LoadModule ディレクティブを使うことでサーバの起動や再起動時にこのモジュールを ロードするようにできます。
超個人的備忘録。 FreeBSD上でApacheをビルドすると、デフォルトのMPMがpreforkとなります。 これはこれで枯れていてヨイのですが、パフォーマンスを求めるにはオーバーヘッドが多く、向いていません。ここは一発、スレッドを使う worker モードにしたいところ。 単純に configure オプションに –with-mpm=worker と書いただけではコンパイル(正確にはリンク)エラーが出てしまいました。ap_thread_ナントカ って関数が見つからない、とわめいています。 さて、どうしたもんか。。 ごそごそ探ってみると、、これは Apache Portable Runtime library なるライブラリに含まれているモノらしく。こんなもん別売りで入れるのか?と思ったら、、あるじゃないですか、Apacheのソース内に。 $APACHE_SRC/srclib/apr 下
naoya です。最近、とうとう花粉症の季節に入ったので、生まれて初めて空気清浄機を購入しました。 さて、今日は Apache HTTP サーバの MPM (Multi Processing Module) について解説したいと思います。普段、ウェブサーバを構築するとき、Apache HTTP サーバを使うことが多いと思いますが、Apache HTTP サーバを使う上で MPM について理解しておくことは大事です。 この MPM ですが、Apache HTTP サーバではリクエストを処理する部分のことをさします。MPM は、Apache HTTP サーバ 2.0 系から採用されています。Apache HTTP サーバの MPM には、次の種類があります。 prefork worker perchild winnt それぞれの MPM について解説します。まずは、一番代表的な prefork
前エントリ pound と apache をバランスよくチューニングする必要性について の続きです。Apache2 のチューニングによる高負荷(大量アクセス)対策を考えてみます。 ここまできてやっと、そもそも高負荷時に apache2 のプロセス数が足りていなく、静的コンテンツの応答時間が遅延しているのかも?という仮説を立てることができました。図解するとこんな感じです。 Apache2 はもちろん worker MPM で動作させています。worker MPM ってなんぞ?という方は、このブログを読んで頂けている方にはいらっしゃらないかと思いますが http://httpd.apache.org/docs/2.0/mod/worker.html あたりを読むと良いでしょう。 このマルチプロセッシングモジュール (MPM) は、マルチスレッドとマルチプロセスのハイブリッド型サーバを 実装して
クラウドのホスティングサービスは、一定リソースの時間極課金+通信トラフィックの従量課金が一般的です。 CPUやメモリなどのリソースは、1%しか使わなくても100%使っても時間内の料金は同じです。 一方で通信料は使った分だけGB単位などで段階的に課金される仕組みです。 この料金体系では、なるべくリソースを使い切って、且つ通信料を抑えることが最も費用対効果のある利用方法となります。 サーバーからクライアントへのレスポンス、特にブラウザーのロードとレンダリングを高速化させるために、Yahoo!のYSlowやGoogleのPage Speedを使ってチューニングを行うのと同じようなアプローチで、なるべくCPUに仕事をさせて、トラフィックを減らしてみたいと思います。 キャッシュ機能を最大限利用する Expires Apacheのmod_expiresを有効にすることで、レスポンスヘッダーにExpir
チューニングポイント1(必要ない機能は削って処理を減らす) ・HostNameLookups off ・余計なモジュールを無くす/ロードしない ・.htaccessは使わない ・DirectoryIndex ↑ チューニングポイント1(プロセスを制御する箇所のチューニング) StartServers MinSpareServers MaxSpareServers MaxRequestsPerChild MaxClients Timeout KeepAlive MaxKeepAliveRequests KeepAliveTimeout preforkの場合、ServerLimit?/MaxClients?は同じ数字にする必要がある。 Serverで上がるプロセスの上限=接続できる数であるため PHPの場合、この値はメモリとのからみがあり、増やし過ぎるとPHPが実行できなくなる。 計算と
日本最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、 このサーバにまつわるよしなしごとを語ります。 English versions of some posts on another blog. Apache HTTP Serverでログをパイプ経由でプログラムに出力すると、リクエストを処理するたびにログを処理するプログラムへのコンテキストスイッチが起こります。そのためアクセスが増えたときにCPUをかなり浪費します。UltraSPARC T1は32個のコンテキストを保持できて、1クロックでコンテキストスイッチできるので問題ないと思っていました。しかし、CPUの使用率が100%に達して、さらに負荷が掛かる状況になると違いました。 ftp.jaist.ac.jpにはパイプ経由のログ出力が3つあります。エラーログとアクセスログのrotatelogsへの出力と、以前
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く