タグ

Apacheに関するrysterのブックマーク (82)

  • Apache HTTP Server: MPMパラメータ チートシート

    こんにちは滝澤です。たまにはapacheネタということで一つ。 Apache HTTP ServerのパラメータチューニングではMaxClientsなどのMPM(マルチ プロセッシング モジュール)関連のディレクティブの設定値を調整することが多いです。記事ではMPM関連のディレクティブのデフォルト値やディレクティブ間の関係を表にまとめたので紹介します。 注意事項 UNIX系OSにおける説明となります。バージョン2.2系および2.4系の両方について説明します。 関係式においてバージョン2.4系の場合はMaxClientsをMaxRequestWorkersに置き換えて読んでください。 ディレクティブ名には公式サイトのリンクを張っています。公式の説明も確認してください。 デフォルトの欄で括弧付きものはそのディレクティブそのものは設定不可ではあるが、内部的に設定されているデフォルト値を示してい

    Apache HTTP Server: MPMパラメータ チートシート
  • 複数の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乗りの適当な日々
  • Apacheのチューニングメモ - Qiita

    個人的Apacheチューニングのメモ。 間違いがあったら教えて下さい! prefork 前提 Apacheでは、リクエストはApacheの子サーバプロセスが処理する。 子サーバプロセスは動的にforkで生成されたり、殺されたりする。 が、forkはとても重い処理なので、forkが発生しないように設定するのがよい。 チューニング方針 負荷が高かろうが低かろうが常に一定数のプロセスが動いている状態にする。 preforkの動作 MaxClientsは絶対値。 子プロセス数はこの値を超えない。 (以下正確ではないですが簡単に) Apacheは負荷が高くなってきたら 子プロセスを生成していく アイドル状態の子プロセスはMinSpareServers以上になるよう維持 MaxClients以上の子プロセスは生成しない MinSpareServersよりMaxClientsが強い 負荷が低くなってきた

    Apacheのチューニングメモ - Qiita
  • Apache2.4からはデフォルトでEvent MPMになってるのに気付かなかった話 - blog::wnotes.net

    ちょっと間が空いてしまいましたが、久々にメモを残しておきます。 Apacheが遅い/止まると言われてしまいまして 現在進めているプロジェクトで、やや大きめのサーバ構築をしてたんですが、ちょくちょく「レスポンスが遅い/Apacheが止まる」と言われてしまい、うーんなんでだろうと色々試行錯誤していたメモ書きです。 ちなみにDBMySQL-Cluster、サーバサイドはPHPです。 (当はPound側とかMySQL側にもいくばくかの問題があったのですが、主な問題はここだったのでほかは省略) MPMの話だった 原因に気づいたのはパフォーマンスチューニングの最中でした。Apache Benchでもそもそ検証してたんですが、

  • HipHop for PHP をインストールして apache で proxy してみた

  • リーバスプロキシ/ロードバランサとmod_rpaf

    リバースプロキシ/ロードバランサ配下のApache HTTP Server(以降、単にhttpdと記す)ではmod_rpafというモジュールを使用すると、アクセス元のIPアドレスを正しく取得して、そのIPアドレスでログに出力したり、アクセス制御を行ったりすることができるようになります。 今回の記事の前半ではこのmod_rpafについてインストール方法や設定方法について説明します。 後半ではmod_rpafを使ってもアクセス制御ができない問題が発生して、それを解決した経緯などを紹介します。具体的にはロードバランサとしてAmazon Elastic Load Balancingを、プロキシサーバとしてnginxを、バックエンドサーバとしてAmazon Linux 2011.09のhttpdを使ったときにアクセス元IPアドレスによるアクセス制御がうまくできない問題が発生しました。このあたりにご興

    リーバスプロキシ/ロードバランサとmod_rpaf
  • Apache 2.4系でのモダンなアクセス制御の書き方

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

    Apache 2.4系でのモダンなアクセス制御の書き方
  • apachectl -k restart は stop && start じゃないので気をつけましょう - blog.nomadscafe.jp

    Apacheを起動するときに使う事もある apachectl の -k restart は stop && start ではないので注意しましょう。 ServerLimitやThreadLimitなどの一部の設定は、restart では適用されず、stop && start が必要になります。 apachectl は実はshellscriptで出来ています。中をのぞくと #!/bin/sh .. HTTPD='../httpd' .. start|stop|restart|graceful|graceful-stop) $HTTPD -k $ARGV ERROR=$? ;; と書かれています。restartはhttpdコマンドにそのまま渡されるようです。 そこでhttpdコマンドのドキュメントを読むと詳しくは Stopping Apache httpd http://httpd.apach

  • 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の本気を見た
  • Automating Web Performance with mod_pagespeed - igvita.com

    By Ilya Grigorik on October 10, 2012 One of the best investments any development team can make is towards better tooling and automation of common workflows. Turns out, many web performance best practices are prime candidates for this type of automation: preprocessing, minification, concatenating and spriting assets, optimizing images, and so on. One way to achieve this is through a build step prio

    Automating Web Performance with mod_pagespeed - igvita.com
  • TechCrunch | Startup and Technology News

    Welcome back to TechCrunch Mobility — your central hub for news and insights on the future of transportation. Sign up here for free — just click TechCrunch Mobility! Okay, okay…

    TechCrunch | Startup and Technology News
  • PHPで認証して、mod_xsendfileでファイルを出力する

    ApacheでX-Sendfileが利用できるmod_xsendfileをPHPと連携して使ってみました。 PHPで認証してから、許可したユーザのみにファイルを出力する、という処理を実装する場合、ファイルはdocument_root外に配置しておいて、readfile()やfpassthru()でファイルを出力するという手法を良く使います。 この方法でも問題無い場合が多いのですが、容量の大きいファイルを出力する際は思ったようなスピードが出ない時があります。 そのような時はmod_xsendfileを使って、ファイル出力の部分をApacheに任せてしまう方法が有効です。 ここでは2010/11/12時点の最新版であるmod_xsendfile 0.12を対象としています。またインストール環境はRHEL、CentOSを想定しています。 mod_xsendfileのインストール mod_xsen

  • インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ

    普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11

    インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ
  • 【メモ】 Apacheの設定で「wwwあり」と「wwwなし」を統一する

    かなりBasicな話なのですけど、設定ミスでアクセス出来ない事例が生じてたのでメモとして。 Apacheの設定で「wwwあり」と「wwwなし」を統一するには、VirtualHostを使うと楽です。 「wwwあり」→「wwwなし」 ServerName www.example.com Redirect permanent / http://example.com/ 「wwwなし」→「wwwあり」 ServerName example.com Redirect permanent / http://www.example.com/ このサイトでは「wwwなし」に統一しているので上のパターンですね。 以下のような転送が行われています。 https://www.nplll.com → https://nplll.com https://www.nplll.com/archives/category

    【メモ】 Apacheの設定で「wwwあり」と「wwwなし」を統一する
  • 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

    ryster
    ryster 2012/04/04
    同行にコメントアウトは基本書かないからあれだけど、それにしてもこれは知らなかった
  • 過負荷をかわす 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開発者の部屋
  • Apache2.2 帯域制限をかける mod_cband最強?mod_bandwidth mod_bwshare... どれがいい?

    ryster
    ryster 2011/10/26
    帯域制限のまとめ
  • RangeつきリクエストによるApacheのDoSとApache Killerの実力 | 水無月ばけらのえび日記

    公開: 2011年8月30日1時45分頃 ApacheのDoSの脆弱性が話題になっていますね。 HTTP/1.1では、HTTP要求ヘッダでRangeフィールドを指定すると、コンテンツの全てではなく一部分だけを要求することができます。たとえば、以下のように指定するとデータの先頭の1バイトだけを受け取ることが期待されます。 ※これは以前にも書いたのですが、0-0で1バイト受け取るというのは微妙に直感的ではない感じがしますね。しかし正しい挙動です。 WebサーバがRangeを解釈した場合、ステータスコード 206 (Partial Content) で応答しつつ、指定された部分だけを返します。 と、これだけならRangeがない場合とサーバの負荷はほとんど変わらないのですが、実は1回のリクエストで複数の範囲を指定することができます。その場合、応答は Content-Type: multipart/

  • Apache の脆弱性対策:Apache Killer 対策 | 空模様

    Apache Killer が危険そうなので対策を実施した。 ●Apache Killer とは GET もしくは HEAD メソッドで、多数のRange指定を含むリクエストを送ることで、ターゲットシステムのメモリとCPUを消費させるというもの。 8月20日に公開されたApacheの脆弱性(英語)をついたもので、現在パッチはリリースされていない(但し、8月25日時点で Apache 開発チームが、48時間以内にパッチをリリースすると発表している)。 ●攻撃を受けると具体的にどうなるか 仮想 OS で立てたサーバに攻撃を行い、どういう事象が発生するか実験してみた # Ubuntu  10.0.4 LTS # Apache 2.2.14 攻撃パケットは以下の画像の通り、Range ヘッダーに複数の指定を行うという単純なもの。尚、攻撃コードを見ると perl の fork を利用して並行で複数の

  • Apache HTTP Serverの脆弱性を突く「Apache Killer」――パッチは48時間以内にリリース予定 | OSDN Magazine

    Apache HTTP Serverの開発チームは8月24日、同Webサーバーの脆弱性を突くDDoS攻撃ツール「Apache Killer」が出回っていると警告した。該当するApacheは1.3系および2系の全バージョン。パッチ発行までユーザーはおのおので対応を講じるよう呼びかけている。 Apache KillerはFull-disclosureというメーリングリストで先週公開された。問題となっているのは「Range header DoS」と呼ばれる脆弱性。リモートから多数のRange指定を含むリクエストを送ることで、ターゲットシステムのメモリとCPUを消費させるというもの。バージョン1.3系および2系のすべてがこの脆弱性を持つという。デフォルト設定ではこの攻撃に対し脆弱で、現在この脆弱性を修正するパッチやリリースはない。Apache Killerではこの脆弱性が悪用され、多数のリクエスト

    Apache HTTP Serverの脆弱性を突く「Apache Killer」――パッチは48時間以内にリリース予定 | OSDN Magazine