HTMList.com 日本でもSEOの認識が高まり、検索エンジンに対してより有効なコンテンツの作成方法やURLの作成方法が議論されるようになってきた。ここではURLの側面からHTMList.comに掲載されているA Simple mod_rewrite Tutorial: SEO-Friendly, Attractive URLsを紹介したい。これはApacheのmod_rewriteモジュールを使ってより読みやすくて魅力的なURLを実現しようというものだ。 A Simple mod_rewrite Tutorial: SEO-Friendly, Attractive URLsはひとつのURLを例に上げながら、最終的にどういったURLに変換するかを含めてmod_rewriteの有効化方法や変換規則の記述方法を説明している。最近ではブログが発達したため自分でWebサーバを構築する機会は少な
裏はとれていないですが、 mod_rewrite の RewriteMap に prg: で適当なプログラムをセットして、そいつを RewriteRule の中で使う場合に、出力する文字列のおしりに改行文字 \n をつけて出力しないと Rewrite が途中で止まってしまい、うんともすんともいわなくなっていました。 Perl なら $|=1 にして、バッファリングをさせないようにする、というのがドキュメントにも載っていて有名な話のようですが、 \n の話は見かけたことがなかったので、結構悩みました。 これが mod_rewrite で要求するから必要なものなのか、 $| のほうで必要になるものなのか、よくわかりませんが、ともかくこんなことがあったよ、という未来の自分へのメモを残しておきます。
オープンソースの大人気Webサーバ Apache ですが、 Apacheのhttpdデーモンを再起動するには、 sudo apachectl restart としたりするわけですが、サービスを運用している場合は、 この方法は、優しいリスタートというわけではありません。 リクエストの処理を待たずして、乱暴に再起動してしまうようです。 このため、Apache 2.0から graceful という優雅なリスタートが追加されました。 処理中のリクエストの完結を待って、httpdを再起動する 優雅で優美(?)なリスタートは、 apachectl restart の代わりに下記コマンドを実行します。 sudo apachectl gracful 参照しているページ (サイト内): [2008-08-02-1] スポンサーリンク
いつもapache(httpd)のプロセスをチェックするために、topコマンドで様子を確認しています。httpd(8)プロセスのメモリ使用量が68MBと大きいなと感じました。 top -U wwwの抜粋。 PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND 25764 www 1 4 0 67872K 21660K accept 0:02 3.60% httpd 25473 www 1 4 0 67860K 21756K accept 0:06 3.13% httpd 25352 www 1 4 0 67864K 22000K accept 0:12 2.69% httpd 25681 www 1 4 0 68092K 21948K accept 0:05 2.10% httpd 25172 www 1 96 0 67936
以前書いたように、Apache と Tomcatを連携するために mod_proxy, mod_proxy_ajp を使う。 この設定には、問題がある。全てのリクエストを Tomcat へ渡してしまうので、Ailias などの Apache の機能は使えなくなってしまう。 調べたところ、残念ながら jsp ファイルだけ proxy を通すということは出来ないようだ。 だが、ファイル単位は出来ないがディレクトリ単位なら可能であることがわかった。 ProxyPass ! で、特定のディレクトリは、プロクシを介さないように設定可能。ただし、以下のように、 "ProxyPass !" は、"ProxyPass ajp://localhost:8009/" より前に記述しなければならない。 ProxyPass ! ProxyPass ajp://localhost:8009/ allow from
このモジュールは Apache のプロキシ/ゲートウェイ機能を実装しています。 AJP13 (Apache JServe Protocol version 1.3), FTP, CONNECT (SSL 用), HTTP/0.9, HTTP/1.0, HTTP/1.1 のプロキシ機能を実装しています。これらのプロトコルやその他のプロトコル用の プロキシ機能を持った、他のモジュールに接続するようにも設定できます。 Apache のプロキシ機能は mod_proxy の他に、 いくつかのモジュールに分割されています: mod_proxy_http, mod_proxy_ftp, mod_proxy_ajp, mod_proxy_balancer, mod_proxy_connect です。ですから、 特定のプロキシの機能を使いたい場合は、mod_proxy と 該当するモジュールをサーバに (
via del.icio.us/popular Apacheのフォルダローカルな設定ファイル.htaccess で使いそうな設定をかたっぱしから書き込んだファイル。 メイン、スクリプト関連、ヘッダ(キャッシュや最速化)、URL書き換え、認証、SSL、開発中サイト、というようなジャンルごとに、よく使われそうなディレクティブがずらずらと並んでいる。PHPの設定、cool URLの設定、エラーページ、認証の掛けかた、などなど。 書き換えるべきところは英単語で何を書くのかわかるようになっているので、コメントとあわせて思い出しながらコメントを外していくとそれなりに使えそうな .htaccess が作れるかもしれない。僕なんかは細かい設定方法すぐ忘れてしまって検索することが多いので、これで楽になりそう。 # 本当に不要なものはコメントにせずファイルから消すべきだし、安定運用に入ったら.htaccess
ここ3日間ぐらい超絶な重さだったのはサーバに物理的トラブルが発生したからではなく、単純に閲覧者数が満員御礼となり、各時間で倍増したためです。LoadAverageはひどいときで15分間の平均値「27.1」程度。瞬間最大風速だともっと高いです……明らかにまずい。 というわけで、Apacheのデフォルト設定で今までは大丈夫だったのですが、ついに高負荷サイト用の設定に変更せざるを得なくなりました。 そのため、実際に行った対処方法は以下の通り。1日30万PV近い動的サイトの高負荷を緩和させる方法として参考になれば幸いです。 まず大前提として、既にDNS逆引きや.htaccessの余計な読み込みなどは停止させていました。下記ページに書いてあることは実行済み。 @IT:Apacheパフォーマンス・チューニングの実践(1/2) この状態で負荷が15分平均で「27」になっていたわけです。 また、LoadA
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く