タグ

apacheに関するzsiarreのブックマーク (29)

  • Apacheモジュールのアップデート時にrestartは必要か

    Apacheのモジュールをアップデートしたときに通常は再起動を行っていますが、そもそも再起動が必要なのか、gracefulだけで大丈夫だったりしないかということを調べてみました。 Apacheのモジュールロードのタイミング モジュールをロードするコードはこのあたりだろうか。 https://github.com/apache/httpd/blob/2.4.10/modules/core/mod_so.c https://github.com/apache/httpd/blob/2.4.10/modules/core/mod_so.c Apache からは APR の apr_dso_load() を使っているみたいなので、APRの方を覗いてみる。 https://github.com/apache/apr/blob/1.5.1/dso/unix/dso.c 複数のOSをサポートするために

  • 複数のWebサーバでSSLセッションキャッシュを共有してSSL処理を高速化(Apache + mod_ssl + mod_socache_memcache) - 元RX-7乗りの適当な日々

    HTTPS(SSL利用)サイトがSEO的に優遇されるトレンドで、世間的にもHTTPS接続でサイト運用するサービスが増えてきています。 これが、ハイトラフィックサイトになってくると、このフロントエンドでSSL処理させることが負荷的にもなかなか辛いのです。 で、Apache 2.3以降では、Shared Object Cache Providerとして、memcachedが選択できるようになっています。 この仕組みを利用して、Apacheとmemcachedを並べることで、各サーバでユーザのSSL Session Cacheを共有しながらHTTPSリクエストを負荷分散できる構成を作ってみました。 WebサーバでSSLオフロード 常時SSLを利用したWebサイトを運用するために、SSLアクセラレータといったアプライアンス製品だとか、ソフトウェアだとApacheやNginxのSSLモジュールを使う

    複数のWebサーバでSSLセッションキャッシュを共有してSSL処理を高速化(Apache + mod_ssl + mod_socache_memcache) - 元RX-7乗りの適当な日々
  • Apache2.4そろそろリリース...かもしれないので非同期I/Oのevent mpmの紹介

    自信のないタイトルは1年前に「2011年には流石にリリースされると思います」と書いてしまった反省からです。 リリースに関わっているわけでもないのに根拠のない予言をするものではありません。更にさかのぼること3年前には、Apache2.4カウントダウン?のタイトルで記事を書いています。もはや狼少年状態です。 Apache2.4の新機能の中で意外にフィーチャーされていませんが、個人的な注目はevent MPM(とAsynchronous support)です。いわゆる非同期I/O動作のイベントドリブンなmpmです。非同期I/Oのイベントドリブンと聞くと、nginxと同じ動作?と思う人もいるかもしれませんが、動作モデルは異なります。 Apacheを知っている人は、event mpmがバージョン2.2から存在するのを知っているかもしれません。バージョン2.2では実験的(experimental)mp

  • カスタマイズ済みのApacheログ書式もパースする Apache::Log::Parser の話 - たごもりすメモ

    さて、Perlといえばテキスト処理、テキスト処理といえばPerlですね。そしてこのビッグでデータな現代においてテキスト処理といえばログの処理に決まっています。 ログの処理といってもいろいろですが、もちろん強く逞しく生きる現代っ子の我々は以下のようなログを扱います。 Apacheのログ Apacheのログなんだけどいくつかの書式が混ざってたりする combined に当然いろいろデータが足してある LTSVってなんですか? そのような素敵な問題を解決するためのモジュールがCPANにあります。Apache::Log::Parserです。 あっ、そのページはダメ、こっち、こっちな。 Apache::Log::Parser Apache::Log::Parserは内部に2種類の解析器を備えており、パーサを初期化するときにどちらかを選びます。それぞれ以下のように動作します。 fast mode Ap

    カスタマイズ済みのApacheログ書式もパースする Apache::Log::Parser の話 - たごもりすメモ
  • ApacheのRewriteRuleで検索条件に^/がマッチしない場合がある理由 - このブログはURLが変更になりました

    ApacheのRewriteRuleで「/hoge/配下にアクセスがあったら http://example.jp/fuga/ に301リダイレクトを行う」ってな処理を書く場合、先頭に/が必要な場合と必要ない場合がある。 RewriteEngine on # これでいける場合もある RewriteRule ^/hoge/(.*) http://example.jp/fuga/$1 [R=301,L] # こう書かないとダメな場合もある RewriteRule ^hoge/(.*) http://example.jp/fuga/$1 [R=301,L] この先頭に/が必要不要の違いはなんだろうなーと思っていたが、先日理由がわかった。 Apacheのドキュメントにしっかり書いてあった。 RewriteRule Directive What is matched? In VirtualHost c

    ApacheのRewriteRuleで検索条件に^/がマッチしない場合がある理由 - このブログはURLが変更になりました
  • Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法 - (ひ)メモ

    Apacheでreverse proxyするときに、バックエンドは同じなんだけど受けるパスに応じて別なタイムアウト値を設定しようとしてハマったのでそのメモです。 以下、Apache 2.2.22 でのお話です。2.4でどうなってるか、どなたかご存知でしたら教えてください>< まず思いつくのはこんな設定だと思います。 ProxyTimeout 7 ProxyPass /3sec/ http://127.0.0.1:9999/ timeout=3 ProxyPass /5sec/ http://127.0.0.1:9999/ timeout=5バックエンド (127.0.0.1:9999) は、こんなのを動かしておけば十分です。 $ while true; do echo listen...; nc -l 9999; doneこれでクライアントでアクセスしてみると… $ time curl h

    Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法 - (ひ)メモ
  • 過負荷をかわす Apache の設定 : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基設定 まずは基的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp

    過負荷をかわす Apache の設定 : DSAS開発者の部屋
  • Apache 2.4系でのモダンなアクセス制御の書き方

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでのApache2.2系以前でのアクセス制御の書き方は賛否両論でした。僕はあまり好きじゃありませんでした。 過去のアクセス制御に関しては、以下の記事がとてもわかりやすくまとめられていると思います。 こせきの技術日記 – Apacheのアクセス制御をちゃんと理解する。 ここで、以下のように言及されています。 こんなバッドノウハウ、当はどうでもいいと思う。Apache 3.0では、かっこいいDSL(VCL)で書けるようにする構想があるらしいのでがんばってほしい。 ということで、2.4系ではDSLとはいかないまでも、Require*というディレクティブを使ったモダンな書き方ができるようになったので、それを2.2系以前のアクセス制御の記述と比

    Apache 2.4系でのモダンなアクセス制御の書き方
  • Apache狙いの攻撃横行、48カ国で2万超のWebサイトが感染か

    攻撃ツールキットの「Darkleech」はApacheを使ったWebサーバに感染し、Webサイトを見たユーザーをマルウェアに感染させるという。 広く普及しているWebサーバソフトのApacheを狙った攻撃が横行し、過去数週間だけで推定2万を超すWebサイトが被害に遭っているという。IT情報サイトのArs Technicaや米Cisco Systemsのブログが4月3日までに伝えた。 それによると、この攻撃ではApacheを使ったWebサーバが「Darkleech」という攻撃ツールキットに感染。被害は米国や英国を中心とする48カ国に及んでいる。これまでに感染が確認された中にはLos Angeles TimesやSeagateなどの大手企業が運営しているWebサイトも含まれるという。なお、この両社はArs Technicaに対し、感染が発覚した時点で対処済みだと説明している。 Darkleec

    Apache狙いの攻撃横行、48カ国で2万超のWebサイトが感染か
  • Apacheの不正モジュールを使ったWeb改ざん被害に対して注意すべきこと(トレンドマイクロ) | ScanNetSecurity

    Apacheの不正モジュールを使ったWeb改ざん被害に対して注意すべきこと(トレンドマイクロ) | ScanNetSecurity
  • プロのサーバ管理者が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つです。

  • 今こそ見直す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

  • combinedに代わるオレ流ログフォーマット - (ひ)メモ

    こんにちは、combinedログ撲滅委員会のひろせです。 ApacheのcombinedやNginxのデフォルトのlog_formatは、機械処理(日付でのソートやパース)がしづらい上に、人の目にもあまり見やすいフォーマットとはいえないと思っています。 なので自宅のサーバーでは、 日付は ISO8601 にする sortコマンドとかで簡単にそぉーっとソートできるようになる 日付、レスポンスコード、所要時間とか固定長的なフィールドは左に寄せる URLとかUAとか可変長で長いのは右に寄せる リクエスト(%r)も右に寄せた方ががいいような気がしてきた。。。 数値だけだとわかりづらいのでなんとなくわかるようにフィールド名も添える フィールド名を長くするとわかりやすくなる反面、ログサイズが大きくなるので注意 という観点で次のようなログフォーマットにしています、 # Apache LogFormat

    combinedに代わるオレ流ログフォーマット - (ひ)メモ
  • ApacheとNginxの性能比較でevent_mpmの本気を見た

    はい、これは僕がいつも良く見るApacheとNginxの性能差に見えます。大体、ApacheはNginxの75%程度の性能に落ち着きます。数十バイトの静的コンテンツに対するリクエスト処理はNginxの得意分野だと思っていたので、大体こんなものです。 そこで、真面目にevent_mpmのチューニングを行ってみました。で、幾度となくベンチを試した結果導き出した、静的コンテンツに対する同時接続数100程度に対して最高のパフォーマンスを示すevent_mpmの設定は以下のようになりました。 [program lang=’apache’ escaped=’true’] StartServers 4 MinSpareThreads 4 MaxSpareThreads 4 ThreadsPerChild 2 MaxRequestWorkers 2 MaxConnectionsPerChild 0 [/p

    ApacheとNginxの性能比較でevent_mpmの本気を見た
  • Apacheのサンプルログを生成し続けるスクリプト

    最新の記事はこちらです。 Fluentdのテストをする過程で欲しかったので、Apacheのログを生成し続けるスクリプトを書きました。 と言っても生成部分はTreasureDataのスクリプトを丸ぱくりで流量制限をするオプションを追加して延々と出力するようにしただけです。 frsyuki++。 手元でサクッとproductionで確認できる人はうらやましす。 使い方は以下のような感じです。詳細はREADMEを見てください。 ruby sample_apache_gen.rb [--rate=0] [--limit=0] [--rotate=0] [--progress] [--json] [outfile] --rate 毎秒何レコード生成するかの指定。0以下は制限無し。 --limit 最大何件出力するか。0以下は延々と出力し続ける。 --rotate ローテーションの間隔。単位は秒指定。

    Apacheのサンプルログを生成し続けるスクリプト
  • Apache HTTP Server 2.2.23 がリリースされました: 日誌

    Apache HTTP Server 2.2.23 がリリースされました。2.4 系列に 2.4.2 や 2.4.3 で入ったセキュリティ上の修正などが含まれています。詳しくは以下をどうぞ。 Apache HTTP Server 2.2.23 がリリースされました Changes with Apache 2.2.23 さて、先日のブログの記事 で書きましたが、2.4.3 では、MSIE 10.0 の DNT ヘッダの振る舞いに異議を唱えるような設定がデフォルトの httpd.conf に入りました。 この件について、それを元に戻すか、あるいはそのままにするかといった議論や背景の説明が、Apache HTTP Server のメーリングリストで展開されています。現在進行中なので、興味のある方は以下のリンクからどうぞ。 DNT & IE10

    Apache HTTP Server 2.2.23 がリリースされました: 日誌
  • Apache HTTP Server 2.4.3 がリリースされました: 日誌

    Apache HTTP Server 2.4.3 がリリースされました。また、2.4.2 も今年の4月にリリースされていたので、それについてもリリース記事を www.apache.jp に書きました Apache HTTP Server 2.4.2 がリリースされました Apache HTTP Server 2.4.3 がリリースされました CVE についてのみしか言及していないのですが、CHANGES 見ると興味深い変更点があるようです。2.4.3 の CHANGES によると *) httpd.conf: Added configuration directives to set a bad_DNT environment variable based on User-Agent and to remove the DNT header field from incoming requ

    Apache HTTP Server 2.4.3 がリリースされました: 日誌
  • mixi の解析基盤とApache Hive での JSON パーサの活用の紹介 - mixi engineer blog

    こんにちは.最近ピクルス作りで精神統一をしている,たんぽぽグループ解析チームの石川有です. このブログではお馴染みのたんぽぽグループですが,"No More 「刺身の上にタンポポをのせる仕事」 - 単純作業の繰り返しで開発者の時間を浪費しないために。"というミッションを持っています.その中で解析チームは,データ解析基盤の構築,データマイニング,データ解析の社内コンサルティングを行ない技術からの改善を担当しています. 今回の記事では,mixi における解析基盤について簡単に触れたあと,その基盤における「刺身の上にタンポポをのせる仕事」をどう減らすかの2点について書きます. mixi の解析基盤 まずは解析環境について,簡単にお話します.2012-08 現在 mixi では,主な解析用のツールとしては,Apache Hadoop, Hive を利用しています.またあわせて,自分など一部の人は,

    mixi の解析基盤とApache Hive での JSON パーサの活用の紹介 - mixi engineer blog
  • CGI,FCGIの中の変数を、apacheのLOGに安全に出す方法 - Studio3104::BLOG.new

    PHPのapache_note関数みたいなのperlでやりたいけどそういうモジュールないかなぁmod_perlを使わなくていい手段に限るです 2012-08-02 13:47:15 via Hotot Twitterでこんな発言をしていたら、apacheモヒカンの人たちが願いを叶えてくれました。 皆さん当にありがとうございます。 @toku_bass++, @xtetsuji++, @kazeburo++ やりたいこと ・ mod_fastcgiな環境で動いているperlスクリプト内の変数を、apacheのLOGに安全に出力したい。 --> 『LogFormat "・・・%{HOGE}n"』のようにフォーマットを定義して、LOG出力したい。 まぁ要は、phpのapache_note関数みたいなことをperlのFCGIでやりたかったわけです。 PHP: apache_note - Manu

  • Apache上のPerl FastCGIはCustomLogにデータを書くことができるか?ついでにmod_perlでのお話

    Apache上のPerl FastCGIはCustomLogにデータを書くことができるか?ついでにmod_perlでのお話