nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW
mod_rewriteでの最後の砦 - As a Futurist...をみて、僕もApacheでURLに%2Fを含むリクエストをリバースプロキシするときに困ったことがあったなーというのを思い出した。 AllowEncodedSlashes On RewriteRule ^/(.*)$ http://backend/$1 [QSA,L,P]みたいな設定を書いてるときにfrontendに http://frontend/keyword/Fate%2Fstay+nightなリクエストが来ると、この設定だとbackendには http://backend/keyword/Fate/stay+night%2FがデコードされたURLにプロキシしてしまう! %2Fのままプロキシするには以下のように設定をすればよい。 AllowEncodedSlashes On RewriteCond %{THE_RE
Contact the core Jetty developers at www.webtide.com private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery Configuring Apache mod_proxy with Jetty The apache web server is frequently used as
Contact the core Jetty developers at www.webtide.com private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery Configuring AJP13 Using mod_jk or mod_proxy_ajp The apache web server is frequently
mod_jsonp は、Apache のフィルタモジュールです。適当に手ででっち上げた JSON のコンテントを手軽に JSONP 化できるとおもしろいなーと思って、適当に作りました。 Content-Type が「application/json」 callback=... というクエリ文字列が Request URI に付加されている という条件が満たされるときに、JSON のレスポンスを JSONP に変換する (単にレスポンスボディを関数呼び出しのための文字列で囲む)、ということをします。 ビルド方法 $ apxs -c mod_jsonp.c $ libtool --mode=install cp mod_jsonp.la $PWDなどとしてビルドして、mod_jsonp.so を適当な場所にインストールしてください。 あとは、httpd.conf に LoadModule js
ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F
HTTP の持続的接続の功罪について はじめに、HTTP の持続的接続 (keep-alive) のメリットについて。持続的接続を使うメリットは、以下の2点。 TCP 接続の確立にかかる時間の節約*1 TCP の接続と切断に必要な資源 (CPUとネットワーク) の節約 ウェブブラウザ〜データセンタ間の通信で、持続的接続を使う理由は、このうちの前者。特に太平洋を超えるようなケースだと、TCP 接続に0.2秒とかかかるので、メリットが大きい。 一方、持続的接続のデメリットは、 接続が切断されるまでの間、その接続を維持するためにコストがかかる (主としてメモリが無駄になる) という点になる。特に、1プロセス1コネクションを前提とするアーキテクチャ (例: mod_perl) だと、メモリの無駄使いが、とてもひどいことになる。 そこで、ブラウザからの接続を受ける HTTP サーバとアプリケーション
タイトルどおりですが、Subversion project は米国時間 2 月 17 日に Apache Software Foundation 傘下へ入ったようです (Subversion Community の記事より) 。 マイコミジャーナルの記事によれば、名称が「Apache Subversion」に変更される他、ホームページの URI も http://subversion.apache.org/ となる。昨年 11 月に Apache Incubator 入りに承認され、4 ヶ月で top-level Apache project に昇格したこととなる (Subversion News Archives より)。
I had a problem: Server A runs a web service, which requires users to authenticate using the standard HTTP authentication mechanism. Server B should have web pages that use AJAX to query A’s web services. Server B’s web pages also require authentication, using the same scheme, backend and database as server A. There are two problems: JavaScript web pages can only access web services/pages on the s
mod_rounded_cornersという角丸を生成するための Apacheモジュール(Apache2系用)を作りました。 というか会社のなんかのミーティングで誰かが 言ってたので勉強がてら作ってみた。 http://github.com/yoshiki/mod_rounded_corners/tree/master インストールは下記のようにすればOK。 % autoconf % ./configure % make # make install 設定はhttpd.confに <VirtualHost *:80> ServerName rounded-corners.example.com <Loction /> SetHandler rounded-corners </Location> </VirtualHost> て感じで書けばOK。 今のところはLocationが「/」以外だと
ちょっと前に Apacheに新たな脆弱性発見 - スラッシュドット・ジャパン で紹介されていた脆弱性なんですけど・・・会社のお達しで各サービス毎に状況報告ってイベントがあったので、ちょいと脆弱性試験してました。そのまとめです。 Apacheに、DoS攻撃に繋がる脆弱性が新たに見つかったそうだ(本家/.記事より) この脆弱性は、これを利用したHTTP DoSツール「Slowloris」がリリースされたことから明らかになったとのこと。この攻撃ツールはApacheに不完全なリクエストヘッダーを送り続けるもので、Apacheが最後のヘッダが送られてくるのを待つ間、偽のヘッダを送ることで接続をオープンにし続け、Apacheのプロセスを一杯にさせるものだという。 脆弱性はApache 1.x、 2.x、 dhttpd、 GoAhead WebServer、そしてSquidにて確認されているが、IIS6
今回は、Webサイトやサービスをメンテナンス中にする場合に、どのURLにアクセスしても「メインテナンス中です」の画面を出す正しいやり方を、人間にも検索エンジンにも適切にする作法を主眼に解説します。 この週末の土曜深夜~日曜早朝にかけて、データセンターの設備メインテナンスのため、Web担を含むインプレスグループのほとんどのWebサイトが、どのURLにアクセスしても「メンテ中です」という表示になっていました。 なのですが、その実装がちょっと気になったので、「正しいメンテナンス画面の出し方」を説明してみます。 ※2010-01-16 Retry-Afterを指定するHeaderの指定を修正しました(コメント参照) ※2009-06-17 RewriteCondから [NC] 条件を削除しました(コメント参照) ※2009-06-16 Retry-Afterの記述をGMTに変更しました(コメント参
mod_log_rotate のススメ で紹介されていた mod_log_rotate がよさげです。 http://www.hexten.net/wiki/index.php/Mod-log-rotate ドキュメントには書いてない(と思う)んですが、CustomLogのファイル名にstrftimeの書式指定が使えるようになります。 ついでに、rotatelogs より cronolog の方がフットプリントが小さそうなので、ErrorLogはcronologを使うようにしてみました。 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_access_tokenとは ウェブサイト上の画像やファイルに有効期限を指定して、ユーザーに一時的なダウンロードを許可する、ライブドアで独自開発したApacheモジュールです。このモジュールをApache Webサーバに組み込むことにより、画像やファイルをウェブ上で公開するときに有効期限をつけることができるようになり、Webアプリケーションと組み合わせる事で公開範囲の制御を行なう事が可能になります。 ソースコードはこちらから入手できます。 modaccesstoken - Secure downloading module for Apache2 - Google Project Hosting livedoor ラボ「EDGE」 開発日誌 : 「mod_access_token」の配布開始と「EDGE src」公開のお知らせ - livedoor Blog(ブログ) ファイルのア
The Big Picture To make the user's Web browsing experience as painless as possible, every effort must be made to wring the last drop of performance from the server. There are many factors which affect Web site usability, but speed is one of the most important. This applies to any webserver, not just Apache, so it is very important that you understand it. How do we measure the speed of a server? Si
追記: 2008-11-14 コメントで id:yasui0906 さんに教えてもらったように、 SetEnvIf X_CLIENT_TYPE "^(DoCoMo|EZWeb|ThirdForce)" is_mobile=1 SetEnvIf x-up-subno "XXXXXXXXXXXXX\.ezweb\.ne\.jp" my_ktai SetEnvIf is_mobile "^$" !my_ktai Order Deny,Allow Deny from all Allow from env=my_ktaiな風にした方が env!= の列挙よりスマートです! 自分もこっち使うようにしました。 たとえば、自分の携帯電話(au)からのアクセスだけ許可したいときは、 CIDRFile "/usr/irori/etc/ip.d/[a-zA-Z]*" SetEnvIf X_CLIENT_TYPE
jboss.org: community driven JBoss Web ProjectおよびJBoss AS Clustering Projectから興味深いプロジェクトが発表された。その名もmod_clusterだ。現在のところ1.0.0.Beta1が公開されている。名前のとおりApache HTTP Serverで動作するモジュールで、背後で動作するTomcatやJBoss Web、JBoss ASなどのアプリケーションサーバへのコネクションを担当する。ロードバランシングの機能とプロクシの機能を備え、mod_jkとmod_proxyの双方の機能をもったような仕組みになっている。 mod_jkやmod_proxyとの大きな違いは、アプリケーションサーバからHTTPサーバへのバック通信をサポートしているところにある。HTTPメソッドでアプリケーションサーバからmod_clusterモジ
Apache::Test事始め 年末前後からApache::Testで真面目にテストを書き始めている。 ところが全くドキュメントがないんだね。いや、あるんだけど、携帯の機能を使いたいだけなのにあの厚いマニュアル読むの?みたいな感じで。まぁというわけでとにかくざくざくっとドキュメント読んでテスト書いてたらようやくなんとなく分かってきた。この間ある程度他人にも説明できたので自信ついたしw Apache::Testはmod_perlハンドラをテストするときに使う。ディストリビューション等でmod_perlをテストしようと思うとApache自体を立ち上げたりなんだりしなければいけなくて「一体どうテストすればいいんじゃ?!」となりがちだが、Apache::Testを使うと、テスト用httpd.confの生成テスト用のapacheの起動/停止mod_perlハンドラ上で動かしたTest::More等の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く