タグ

Apacheに関するm4iのブックマーク (44)

  • Apache httpd.conf の Allow from .. にコメントを書いてしまうとDNSの逆引きが行われてレスポンスが悪化するので注意の件 + コメントが書けるようになるパッチ - blog.nomadscafe.jp

    Apacheのconfにコメントを書く際に、設定の後ろに書く事はできないのは知られているのかどうかよくわかりませんが、その通りです。例えば MaxRequestsPerChild 200 #少なめに これは syntax error になります % ./local/httpd/bin/apachectl -t Syntax error on line 12 of /Users/.../local/httpd/conf/httpd.conf: MaxRequestsPerChild takes one argument, Maximum number of requests a particular child serves before dying. よくやりがちなんですが、ドキュメントにも Directives in the configuration files are case-in

    m4i
    m4i 2012/04/04
  • 今こそ見直すApacheの設定 - blog.nomadscafe.jp

    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

    m4i
    m4i 2011/07/07
  • プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp

    kazuhoさんが「プロのサーバ管理者の間では存在価値が疑問視されて久しい (Min|Max)SpareServers だと思う」と書いたり、hirose31さんが去年のYAPC::Asiaで{Start,{Min,Max}Spare}Servers,MaxClientsは同じにしているよと発表したり、実際前職のサーバはそのように設定されていたのですが、自分でうまく説明ができてなかったので、調べながら書いてみた。 当はイントラブログ用に書いていたものですが、がんばったので転載。 前提として、CPUの使用率におけるsystemとfork Re: クラウドがネットワークゲーム開発者にもたらしてくれたもの - blog.nomadscafe.jpでも書いている通りforkってのはサーバにとって重い部類の処理になります。つまり負荷の高いときにforkを大量に行うのはしてはならないことの1つです。

    m4i
    m4i 2010/09/02
  • Apache を daemontools で管理する - kazuhoのメモ置き場

    自作のサーバプログラムに、いちいち setuid とか setsid とかログローテート機能とか実装するのめんどくさいわけで。だから daemontools を使って管理してるわけですが、だったら、いっそ全部のデーモンを daemontools で一括管理したい。 ちょうど、reverse proxy をセットアップする機会があったので、apache を daemontools で管理する方法を備忘録をかねてメモ。 % cat /service/httpd/run #!/bin/sh APACHE_ROOT=/usr/local/apache-2.2.14 exec 2>&1 exec pgrphack $APACHE_ROOT/bin/httpd -DNO_DETACH -DFOREGROUND -c "ErrorLog /dev/fd/1" -c "Include /var/httpd

    Apache を daemontools で管理する - kazuhoのメモ置き場
  • Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋

    皆さんは、負荷分散環境でのApacheのアクセスログをどのように取り扱ってますか? 通常、Apacheのログは動作サーバ上のローカルファイルとして出力されるので、 Webサーバを同時に何台も稼働させて負荷分散を行うような環境では、それらすべ てのWebサーバのログファイルを集めなければなりません。ローカルファイルとし て出力されるということは、Webサーバの台数分だけログファイルがばらけること を意味します。考えるだけでめんどくさいですね。 KLabでは、このApacheログを2パターンを使い分けて集めています。ひとつは syslogによるリモート出力を使い、全Webサーバからのログ出力を一か所に集中さ せる方法です。これは、CustomLogディレクティブにloggerコマンドを使用するこ とで可能です。 CustomLog "|/usr/bin/logger -p local6.inf

    Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋
    m4i
    m4i 2009/10/22
  • Kazuho@Cybozu Labs: Apache で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた

    ウェブアプリケーションにおいて、認証がかかっている画像や大きなファイルを配信する場合には、Perlbal 等でサポートされている X-Reproxy-URL ヘッダが有効なことが知られていて、その理由としては、 (メモリを大いする) アプリケーションサーバのプロセスを転送終了まで占有しない HTTP ベースの分散ファイルシステムとリバースプロキシが直接交信するので、ネットワーク負荷が低い といった点が挙げられます。「でも、Apache は X-Reproxy-URL ヘッダをサポートしてないんだよねー」という話が、先日の YAPC::Asia 2009 においても話題になっていました[要出典]。回避策としては、ワンタイムURLのような手法もあるのですが、セキュリティな懸念もあります。 なんとかしたいなと思っていたのですが、気が向いたので、Apache に X-Reproxy-URL ヘッ

    m4i
    m4i 2009/10/06
  • メンテナンス中画面を出す正しい作法と.htaccessの書き方 | Web担当者Forum

    今回は、Webサイトやサービスをメンテナンス中にする場合に、どのURLにアクセスしても「メインテナンス中です」の画面を出す正しいやり方を、人間にも検索エンジンにも適切にする作法を主眼に解説します。 この週末の土曜深夜~日曜早朝にかけて、データセンターの設備メインテナンスのため、Web担を含むインプレスグループのほとんどのWebサイトが、どのURLにアクセスしても「メンテ中です」という表示になっていました。 なのですが、その実装がちょっと気になったので、「正しいメンテナンス画面の出し方」を説明してみます。 ※2010-01-16 Retry-Afterを指定するHeaderの指定を修正しました(コメント参照) ※2009-06-17 RewriteCondから [NC] 条件を削除しました(コメント参照) ※2009-06-16 Retry-Afterの記述をGMTに変更しました(コメント参

    メンテナンス中画面を出す正しい作法と.htaccessの書き方 | Web担当者Forum
    m4i
    m4i 2009/06/16
  • mod_log_rotate のススメ | Carpe Diem

    Apache HTTP Server で、logrotate したくないとき、CustomLogErrorLog を日付別に出したい。調べてみると、次の二つのがメジャーのようだ。 Apache HTTP Server に付属している rotatelogs cronolog どちらもパイプ経由でアクセスの多いサーバだと重いかなと懸念していたんだけれど、開発を依託している技術者から mod_log_rotate という Apache モジュールがあることを教えてもらった。

    m4i
    m4i 2009/03/11
  • 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 がよさげかも - (ひ)メモ
    m4i
    m4i 2009/03/11
  • mod_access_tokenをPHPから使ってみる - maru.cc@はてな

    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(ブログ) ファイルのア

    mod_access_tokenをPHPから使ってみる - maru.cc@はてな
    m4i
    m4i 2009/03/04
  • Apache のリバースプロキシの設定方法 - WebOS Goodies

    日は Google Gears 関連のもうひとつのネタを書こうと思ったのですが、間に合わなかったので最近仕事で使った Apache のリバースプロキシ機能の設定方法などをご紹介します。リバースプロキシは、特定のディレクトリ以下へのリクエストを他の Web サーバーに中継する機能です。 LAN 内の複数のマシンで稼動している Web サイトをひとつのグローバル IP で公開したり、 Apache 以外の Web サーバー(Rails でよく使われる mongrel とか)を Apache の Web サイトに統合したりとかが簡単にできます。 Web サイトを柔軟に構築するために、覚えておくと便利ですよ。 前提条件 Apache のリバースプロキシ機能を利用するためには、 mod_proxy を組み込んだ Apache が必要です。通常の Linux ディストリビューションなどではデフォルト

    m4i
    m4i 2009/02/03
  • 複数のテストサーバをリバースプロキシで集約 (1) - daily dayflower

    各所でテストサーバが立ち上がっていて,これらは一台のリバースプロキシの背後にいます。普通に mod_proxy でやっているのですが,テストサーバを増やすたびに設定ファイルを書き換えて httpd を再起動,としなくちゃいけないのが煩わしい。 で,リバースプロキシのマッピング先を動的に構成したいなと思ったわけです。 以降では下記の例を使います。 アクセス URL リダイレクト先 http://outer1.example.com/path1/ http://inner-a.example.com/path1/ http://outer1.example.com/path2/ http://inner-b.example.com/path2/ http://outer2.example.com/path3/ http://inner-b.example.com/path3/ おことわり 今後

    複数のテストサーバをリバースプロキシで集約 (1) - daily dayflower
    m4i
    m4i 2008/11/15
  • mod_rewrite の小技 - Magical Diary, beta version

    ループ処理 mod_rewrite でループ処理を行うには、[N] (next) フラグを利用する。たとえば、/hoge/1/bar/2/baz/3/ を /hoge/index.cgi?foo=1&bar=2&baz=3 としたい (その際、パラメータの個数が不定) 場合、下記の通り記述する。"QSA" (query string append) フラグは、書き換え後の QUERY_STRING 部分のみ "追加" の扱いとする。 RewriteEngine on RewriteLog /var/log/httpd/rewrite.log RewriteLogLevel 9 # Rule 1: RewriteRule ^(/hoge/.*/)([^/]+)/([^/]+)/$ $1?$2=$3&path=$1 [QSA,N] # Rule 2: RewriteRule ^/hoge/([

    m4i
    m4i 2007/10/29
  • サーバにDoS耐性を付ける - stanaka's blog

    ウェブサービスでは、アクセスが集中して、サイトが落ちる、というのは、よくある話です。純粋に人気が出てアクセス集中するなら、サーバ管理側の責任と言われても、しかたないと思います。しかし、botやF5アタックによる突発的な集中アクセスで、落ちてしまう、というのは、運営側としても、あまり納得がいくものではありません。 そのような突発的なアクセスに対応するために、大量のアクセスをしてくるクライアントを検出し、優先度を落すか、アクセス禁止にする方法などがあります。 というわけで、Apacheモジュールでそれを検出するためのmod_dosdetectorを開発しました。(ちなみにコア部分の開発期間は、Apacheモジュールって、どう書くんだっけ、という状態から、3日でした。) mod_dosdetectorは、Apacheモジュールとして動作し、クライアントのIPアドレスごとにアクセス頻度を測定し、設

    サーバにDoS耐性を付ける - stanaka's blog
  • 負荷分散講習会 Apache編 | feedforce Engineers' blog

    ゴール 負荷分散のいくつかの方法に関して理解する mod_proxy_balancerによる負荷分散クラスタが構築できる 基礎知識編 基的な資料 主にクラスタによる負荷分散の資料。 - Apache モジュール mod_proxy_balancer - mod_proxy_balancerで中?大規模サーバー運用するときの勘所 - cyano あと社外秘資料。 負荷分散? 複数台のサーバにアクセスを分散して、個々のサーバにかかる負荷を減らし、全体的に処理できるアクセスを増やすこと。 以下のようなアプローチがある。 DNSラウンドロビン DNSでひとつのホスト名に複数のIPアドレスを割り当てる方法 シンプル しかしダウンしているホストにもアクセスが振り分けされてしまう 冗長化と併用でなんとかなるかな? 機能ごとにホストを分割 ウェブサーバとDBサーバの分割(基過ぎるが一応これも負荷分散)

    負荷分散講習会 Apache編 | feedforce Engineers' blog
  • Takayuki Nakamura's blog: 名前ベースのVirtualHostでそれぞれのSSLサーバ証明書を使う

    2007年7月4日 名前ベースのVirtualHostでそれぞれのSSLサーバ証明書を使う #なんだかんだしてたら、半月経ってしまった #来週になったら、ちゃんと再開 『Name-based SSL virtual hosts』 より 名前ベースのVirtualHostでSSLを使う場合、以下の方法をとれば、それぞれのVirtualHostごとの証明書を使うことができます。 ワイルドカード証明書を使うCN=*.example.com という設定の証明書を使えば、www1.example.com と www2.example.com で共通のサーバ証明書を使うことができます。 subjectAltNameを使う 証明書の subjectAltName に別名としてVirtualHostのDNS名を書いておきます。サーバにセットする証明書は1つですが、証明書内の別名をチェックすることで、「証明

    m4i
    m4i 2007/07/04
  • ウノウラボ Unoh Labs: mod_expires と mod_rewrite を使ってウェブサーバへのアクセスを減らす方法

    最近、雨の日が続いて自転車通勤ができていない naoya です。 今日は、先週ぐらいからフォト蔵に導入した Apache で mod_expires と mod_rewrite を使ったウェブサーバへのアクセスを減らす方法を紹介します。 通常のウェブサーバは、更新されていないリリースに対してアクセスすると、ステータスコード 304 とIf-Modified-Since ヘッダをつけて応答データを返しますが、CSSJavaScript など比較的更新頻度の少ないファイルに対して、毎回応答を返すのはウェブサーバから見ると無駄なアクセスです。 Apache の mod_expires と mod_rewrite を使うと、この無駄なアクセスをブラウザキャッシュを有効活用にすることにより、静的なファイルに対するアクセスを減らすことができます。 まず、仕組みから説明すると、とても単純で mod

  • cyano: mod_expiresとmod_rewriteを使ってサイトの帯域節約と体感速度を向上させる方法

    普通の帯域節約術としては、mod_deflateでdeflate圧縮するとか、CSSやJSファイルのHTTPレスポンスヘッダにLast-ModifiedやEtagを追加しておいて、ブラウザがHTTPリクエストヘッダにIf-Modified-SinceやIf-None-Matchを付加するようにし、コンテンツが変更されていなかったら304 Not Modifiedを返すという方法を取るかと思います。 しかし、HTTPサーバーはコンテンツの数だけ304 Not Modifiedを返さないといけないため、その分帯域を消費しますし、またCSSや画像などのパーツの304 Not Modifiedが返ってくるまで、そのパーツのレンダリングが行えないという問題があります(つまり体感速度に影響します)。 今回紹介するのはExpiresヘッダやCache-Control: max-age=31536000を

  • Apache 2.2.4 configureでエラー:おぼえがき:So-net blog

    PC関連の個人的なメモを残しています。記載内容は僕の私的なメモであり、内容の保証は致しかねますので、あしからず。 Apache 2.2.4をインストールしようとしたら、configureでエラーがでた。 $ ./configure --enable-shared=yes --enable-dav=yes ... checking for APR-util... yes configure: error: Cannot use an external APR-util with the bundled APR どうやら、2.2.4からAPRがソース自体にバンドルされているから、そっちを使えばいいらしい。 ./configure --helpして見ると、以下のようなオプションがあるようなので、指定してみる。 --with-included-apr Use bundled copies of A

    m4i
    m4i 2007/06/07
  • apache Auth Cookie Fu module - 最速配信研究会(@yamaz)

    日夜アクセスと闘うWeb管理者のみなさんこんにちは. ログインしてる人にしか見せたくないコンテンツがあって,phpperlrubyとかで アクセス制御してたりしてなかったりするんだけど,それくらいapache側で対処 してくれよと日々悶え苦しむそんなアナタにapache Auth Cookie Fu module. これはなに? Cookieを使ってコンテンツのアクセスコントロールを行うモジュールです. Cookieの評価後,コンテンツの拒否は指定された方法(redirect, forbidden)で 処理されます.なおCookieの焼き込みは自前で用意する必要があります. module.jp小山さんのmod_auth_formとかなり似てますが, apache2対応 コンテンツ拒否の方法を指定できる などがウリです. ダウンロード http://scaleout.jp/open/mo

    apache Auth Cookie Fu module - 最速配信研究会(@yamaz)
    m4i
    m4i 2007/05/22