タグ

apacheに関するhirose31のブックマーク (76)

  • ApacheのAddHandlerはセキュリティ上の懸念から使用すべきではない - このブログはURLが変更になりました

    元ネタはこちら。 Apache AddHandler madness all over the place Gentoo Bug 538822 どういうことか 次のような指定は危険である。 AddHandler php5-script .php この時に指定される.phpはファイル名の末尾である必要はない。例えば、 aaa.php.html bbb.php.pngなどもphp5-scriptとして解釈されてしまうのだ。これは.XXX.YYYと複数の拡張子が書かれた場合、.XXXと.YYYもAddHandlerの対象となることが原因。 ちなみに次のような場合にはphp5-scriptとして解釈されない。 ccc.php_foo (.php_fooとして解釈されるため) ddd.php_bar.html (.php_barと.htmlとして解釈されるため)実はこのことはApacheのドキュメン

    ApacheのAddHandlerはセキュリティ上の懸念から使用すべきではない - このブログはURLが変更になりました
  • 我々はどのようにして安全なHTTPS通信を提供すれば良いか - Qiita

    Modern Ciphersuite: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES1

    我々はどのようにして安全なHTTPS通信を提供すれば良いか - Qiita
  • [メモ] Apache+mod_sslでSIGBUSが発生した件

    @hirose31さんと、Apache HTTPDからHTTPSでファイルダウンロード中にサーバプロセスがSIGBUSで死ぬって件にぶちあたり、 「OpenSSLの中でmemcpyがSIGBUSしてます」「な、なんだってー!」 って調べたのですが、理由は以下のとおりだった。 HTTPSの場合、デフォルト設定だとファイル読込にmmap(2)が使われる mmapされたファイルのサイズが変更されてもApacheはそれを検知しようがない そして、ファイル末尾以降のデータを読もうとするとセグメンテーションエラー(SIGBUS)が発生し、Apacheのサーバプロセスは異常終了する HTTPの場合は、ローカルファイルシステムの場合sendfile(2)が使われるので、ファイルサイズが変更になってもApacheは異常終了しない ただし、mod_deflateのような出力フィルタを使っている場合は、HTTP

  • mod_headers に note 機能が追加されました

    この投稿は Apache httpd Advent Calendar 2013 ではありません… 2013-11-25 に Apache httpd 2.4.7 がリリースされました。 CHANGES_2.4.7 この中に *) mod_headers: Add ‘Header note header-name note-name’ for copying a response headers value into a note. [Eric Covener] という変更を見つけました。これは!! 「Apache で Response Header を消しつつその値をログに書き出す」で書いた機能が Apache に追加されたようです。 当該部分のコードはこれ case hdr_note: apr_table_setn(r->notes, process_tags(hdr, r), apr_

    mod_headers に note 機能が追加されました
  • Apache HTTPD: mod_allowfileowner - ダメ出し Blog

    mod_allowfileowner って何? Apache HTTPD 用のフィルターモジュールです。 静的コンテンツファイルの所有者をチェックして、 指定のユーザーが所有していればアクセスを許可し、 そうでなければ拒否します。 静的コンテンツファイルをオープンした後、それを指すファイル記述子に対して fstat(2) を行ないファイル所有者をチェックする実装になっているため、 TOCTOU (Time Of Check to Time Of Use) 問題はありません。 何が嬉しいの? 共有 Web サーバーサービスにおいて、一部のシンボリックリンク攻撃を防ぐことができます。 この攻撃は Options -FollowSymLinks や Options SymLinksIfOwnerMatch 設定では完全には防ぐことはできません。 参考: Apache HTTPD: Options

  • GitHub - gnif/mod_rpaf: reverse proxy add forward module for Apache

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - gnif/mod_rpaf: reverse proxy add forward module for Apache
  • Apache 2.4系でのモダンなアクセス制御の書き方

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

    Apache 2.4系でのモダンなアクセス制御の書き方
  • 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の本気を見た
  • Webサーバ勉強会#5に参加してきましたよ - What I’ve found has never been enough@Hatena

    @oranieさん主催の Webサーバ勉強会#5に参加してきましたよ。聴くだけの人は参加NG、参加者は Apache2.4 か Varnish か Fluentd の話をするべし、というルールなので、自分も発表してきました。得意なSSLまわりの話で。とりあえずここにスライド貼っておきますね: Apache 2.4 新機能 “SSL編” View more PowerPoint from nappa_zzz (いただいた質問も含めてもういちどちゃんとまとめようと思います。そのうち。) 今回参加してみて、ほんとうに……なんというか……参加者のみなさまが、眩しかったです。なんというか「大規模Webサイトやってるぜ」感が。発表の内容そのものよりも、その空気を吸収できたのが今回いちばんの収穫だったと思います。主催者のoranieさん、参加者のみなさん、ありがとうございました。またチャンスがあれば参加

    Webサーバ勉強会#5に参加してきましたよ - What I’ve found has never been enough@Hatena
    hirose31
    hirose31 2012/03/30
    session ticket RFC 5077
  • Apache 2.4.1のmod_luaでApacheに介入する(mod_rewriteの終焉?)

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といいつつも、そこまで大したことはしていない。 luaという高速に動作する組み込み系のスクリプト言語で遊んでみたかったのと、それだったmod_luaで遊んでみればいいなと思っただけである。で、実際にmod_luaをコンパイルして遊んでみた。コンパイルオプションは以下。 ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-modules=all --enable-mods-shared=all --enable-mpms-shared='prefork worker event' -

    Apache 2.4.1のmod_luaでApacheに介入する(mod_rewriteの終焉?)
  • Apache 2.4.1のスループット評価(旧ApacheとNginxとのベンチマーク比較)

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 久々のApache HTTP Server 2.4.1という安定版がリリースされたので、早速ベンチマーク評価を行う。今回はevent_mpmのExperimentがとれて、晴れてデフォルトMPMになったのでそれを使ってみたい。 日一(ひょっとすると世界一)早いApache 2.4.1 event_mpmのレビューを意識してみた。 はじめに 個人的にも、event_mpmが採用されたことに最も注目している。event_mpmは非同期型のIO処理をしていて、nginxに近いアーキテクチャをとっている。厳密には、nginxの非同期と比べた場合、nginxは徹底的にノンブロッキング(accept4を使う等)してworkerスレッドで次々と並列処理し

    Apache 2.4.1のスループット評価(旧ApacheとNginxとのベンチマーク比較)
  • Apache 2.2.15から入った mod_reqtimeout を Reverse Proxyで使う場合の注意点 - blog.nomadscafe.jp

    slowloris対策として、Apacheの2.1.15から入ったモジュールにmod_reqtimeoutというのがあります。 RequestReadTimeout header=10 body=30 このように設定することで、headerの受信が10秒以内、bodyの受信が30秒以内に完了しない場合、「408」エラーとできます。簡単で便利そうですね 公式ドキュメント http://httpd.apache.org/docs/2.2/en/mod/mod_reqtimeout.html ただし、 Apacheをreverse proxyとして使用している場合はTimeoutにならず、リクエストの一部がproxy先に送られるという問題があるので注意が必要というか、はまったのでその話。 ちなみに、すでにBugzillaには上がっているけど、2.2系ではまだ対応完了してない https://is

  • 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 の並列数を CPU コア数に応じて決定する : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の10日目です。 昨日の記事 では並列数を設定する基的な方法を紹介しました。 今日は実際に DSAS for Social で利用している設定方法を紹介します。 背景 実際の並列数の設定はマシンのCPUスペックやアプリの特性(レスポンスタイムの 何割をWebサーバーのCPUを使う処理が占めているか)に応じて設定するのですが、 DSAS for Social ではアプリの負荷に応じて柔軟にWebサーバーを 追加・削除するので、CPUスペックが一定ではありません。 具体的に言えば、 Core2 世代の4コアサーバーと、Core i7世代の4コア8スレッド サーバーが Web サーバーとして利用されています。 でも、Webサーバーごとに違う設定ファイルを用意したくはありません。 なんとかできない

    Apache の並列数を CPU コア数に応じて決定する : DSAS開発者の部屋
    hirose31
    hirose31 2011/12/16
    環境変数で設定変えられるのはイイネ!
  • 今こそ見直す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

  • mod_proxy - ProxyPass、BalancerMemberのパラメータのdocumentを読んだのでまとめた - うまいぼうぶろぐ

    http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html#proxypass http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#proxypass timeoutとかconnectionとか。今まで真面目にみてなかったので。mod_proxyのdocumentは翻訳が追いついてないためか、日語のページに記載されている内容は古いversionのものがあるので、なるべく英語のページを見たほうが良い。 とりまメモった内容を記録。体裁は後で整える。 あと、"まとめた"とか言ってるけど、全部のパラメータについて調べたわけではないです。 parameter: default Description timeout: ProxyTimeoutの設定値 ProxyTimeoutのdefault

    mod_proxy - ProxyPass、BalancerMemberのパラメータのdocumentを読んだのでまとめた - うまいぼうぶろぐ
    hirose31
    hirose31 2010/09/09
    すばらしきまとめ!
  • プロのサーバ管理者が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つです。

    hirose31
    hirose31 2010/09/01
    totally agree! Min=Max=Startだと、一斉にMaxReqPerChildむかえて死ぬ→forkするので、プロセス毎にMaxReqPerChildをばらけさせる=集団死しないようにするApache module, mod_bumpy_lifeとか書きましたよ!
  • 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のメモ置き場
    hirose31
    hirose31 2009/11/27
    おお-DNO_DETACH と -DFOREGROUND
  • SSDによるコンテンツキャッシュ(ソフト編)

    最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、 このサーバにまつわるよしなしごとを語ります。 English versions of some posts on another blog. ZFSにはSSDをキャッシュに使ってランダムリードの性能を稼ぐL2ARCという仕掛けがあります。L2ARCはOpenSolarisでは使えるのですが、Solaris 10ではまだ使えません。10u6 (10/08)で使えるようになると言われていたのが延期されて、今年の10u7 (5/09)で使えるだろうと思っていたのが、また延期されてしまいました。実は10u7に合わせてSSDを購入したのですが、当てが外れてしまいました。 仕方ないのでバージョン2.2から実用可能になったApacheのmod_disk_cacheを使おうかと思ったのですが、これがうまくありませんでした

  • Slowloris HTTP DoS

    Slowloris HTTP DoSCCCCCCCCCCOOCCOOOOO888@8@8888OOOOCCOOO888888888@@@@@@@@@8@8@@@@888OOCooocccc:::: CCCCCCCCCCCCCCCOO888@888888OOOCCCOOOO888888888888@88888@@@@@@@888@8OOCCoococc::: CCCCCCCCCCCCCCOO88@@888888OOOOOOOOOO8888888O88888888O8O8OOO8888@88@@8OOCOOOCoc:: CCCCooooooCCCO88@@8@88@888OOOOOOO88888888888OOOOOOOOOOCCCCCOOOO888@8888OOOCc:::: CooCoCoooCCCO8@88@8888888OOO888888888888888888OOOOCCCooooo