タグ

Apacheに関するnipotanのブックマーク (50)

  • Apache 2.3/2.4系に実装中の新機能をちょっと先取りして見てみよう : DSAS開発者の部屋

    (追記: 続編をupしました。設定例と動作検証を行っています。→こちらへどうぞ) Apacheといえば、Webサービスを構築する上でだいたいどこかで必ずお世話になるであろう、HTTPサーバのデファクトスタンダードとして幅広く定着したソフトウェアだと思います。KLabでも各所で運用してお世話になっています。 現在、バージョンは2.2系が安定版(stable branch)となっておりますが、開発版である2.3系が既に並行して公開されているのをご存知でしょうか。新しい機能や技術を取り入れて行く為に2.2系との間の互換性を時に犠牲にしつつ、様々なチャレンジが行われているわけです。将来的にはこのバージョンが2.4系となって新しい安定版として提供されることになるでしょう。 このDSASブログでも、Apache 2.3系で取り組まれている新しい機能について着目し、面白そうなものを一つずつ取り上げながら

    Apache 2.3/2.4系に実装中の新機能をちょっと先取りして見てみよう : DSAS開発者の部屋
  • livedoor Techブログ : mod_rewrite マニアックス

    こんにちは。開発部の池邉です。 既に色んなところで発表していますが、ライブドアではWebサーバとして殆んどのサービスでApacheを使用しています。 Apache の特徴として、モジュールによる機能の追加、挙動の制御があります。その中でもよく利用されていながら、深く使っていくとハマりどころや謎の機能の多いモジュールとして mod_rewrite があります。Apacheの公式サイトでも以下のように書かれている事からも、家でもその点については認めているという事でしょう。 今回はそんな mod_rewrite のちょっとマニアックな拡張方法について紹介したいと思います。 Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. 変数を利用したプログラム

  • mod_psgi を実装してみた - spiritlooseのはてなダイアリー

    http://github.com/spiritloose/mod_psgi PSGI を実装したApache2モジュール。 % make && make installでインストールできて、 LoadModule psgi_module modules/mod_psgi.so <Location /psgi> SetHandler psgi PSGIApp /path/to/app.psgi </Location> で動く。 がーっと書いたのでまだまだの部分が多いとはおもうけど、一通り実装できたと思う。 Plack::Test::Suite を使ったテストも書いた。 http://github.com/spiritloose/mod_psgi/blob/master/t/suite.t mod_perlのようにApacheの機能を提供する必要はなく、アプリケーションへはenvを渡せば い

    mod_psgi を実装してみた - spiritlooseのはてなダイアリー
  • 角丸作り放題なApacheモジュール

    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が「/」以外だと

  • mizzy.org : mod_rpaf よりも mod_extract_forwarded

    リバースプロキシな環境では mod_rpaf 使ったりすることが多いと思いますが、バックエンドの apache でアクセス制限かける場合には、mod_extract_forwarded を使ったほうが良いよ、というお話。 バックエンドの apache 2.0 + mod_rpaf な環境で .htaccess によるアクセス制限をかけようとしても、接続元の IP アドレスではなく、pound の IP アドレスで制限がかかってしまう、という現象に悩まされました。で、ソースを眺めてみると mod_rpaf は ap_hook_post_read_request で実行されているのに対し、mod_access は ap_hook_access_checker で実行されています。おそらく、ap_hook_post_read_request よりも ap_hook_access_checker

  • livedoor Reader

    livedoor Readerサービス終了のお知らせ 2014年12月をもちまして、LINE株式会社が提供するlivedoor Readerの運営を終了しております。 長きに渡りご愛顧をいただきまして、誠にありがとうございました。 livedoorホームへ戻る

    nipotan
    nipotan 2009/05/19
    うわ。やばい。まったくモザイクかかってない。美しすぎる上に、見えすぎる。やばい。こんなすごいの初めてみた。みるく噴きだしてきた。止まらない。たすけて。
  • tips - Webサーバーの負荷テストならまずab : 404 Blog Not Found

    2009年05月13日16:45 カテゴリTips tips - Webサーバーの負荷テストならまずab だめじゃん。 WEBアプリ開発に便利な機能&負荷テストツール集:phpspot開発日誌 abがないじゃん。 abとは何かというと、apacheに標準でついてくる負荷テストツールの名前。apacheが入っている環境であれば、まず間違いなく入っているはず。 引数なしだと、help表示。 ~% abab: wrong number of arguments Usage: ab [options] [http[s]://]hostname[:port]/path Options are: -n requests Number of requests to perform -c concurrency Number of multiple requests to make -t timelimi

    tips - Webサーバーの負荷テストならまずab : 404 Blog Not Found
    nipotan
    nipotan 2009/05/13
    livedoor Blog に ab とか…
  • mod_perliteを試してみた - とほほのN88-BASIC日記

    Ideas - O'Reilly Media modperlite PHPのようにファイルを置くだけで実行されてCGIより速くてmod_perlより簡単なapache moduleだそうです。去年からのCGI frameworkブームを補完する上でも試してみるっきゃないということで まずはソースの取得 svn co http://code.sixapart.com/svn/mod_perlite/trunk modperlite cd modperliteちなみにもうすぐgithubに移行されるようです。 コンパイルとインストールはapxsにパスを通して ./Build.PL ./Build ./Build installhttpd.confとかconf.d/modperlite.confとかに LoadModule perlite_module modules/mod_perlite.s

    mod_perliteを試してみた - とほほのN88-BASIC日記
  • mod_rewrite の QSA フラグは $%{QUERY_STRING} と等価か? - @kyanny's blog

    たぶん等価じゃないかなーと思うんだけど、ソースを読んだわけじゃないので自信はない。 RewriteRule ^/id/(.*) http://localhost:8080/app/?id=$1&%{QUERY_STRING} [P,L] RewriteRule ^/id/(.*) http://localhost:8080/app/?id=$1 [P,L,QSA]この二行がいついかなるときでも同じ URL への変換になるのかどうかが気になった。なぜなら QSA 期が来たから!しかし RewriteRule なんて毎日書くものでもないから、 QSA 期はすぐに去ってしまうだろうな。

    mod_rewrite の QSA フラグは $%{QUERY_STRING} と等価か? - @kyanny's blog
  • Apache2::Statusを使ってみた - とほほのN88-BASIC日記

    mod_perlでどのくらいメモリー使われてるかとか調べたかったのでApache2::Statusを使ってみた。 Shibuya.pmのLTにも含めようと思ったけど5分に押し込めるのは無理なのでここで公開。 テスト対象としてCGI::Applicationで package HelloWorld; use strict; use warnings; use base 'CGI::Application'; sub setup { my $self = shift; $self->start_mode('index'); $self->run_modes( ['index']); } sub index { "HelloWorld"; } 1; runスクリプトとして #!/usr/bin/perl use strict; use warnings; use lib './lib'; use

    Apache2::Statusを使ってみた - とほほのN88-BASIC日記
  • #!shebang.jp : 社内で使った Apache モジュールの資料

    November 21, 200811:00 社内で使った Apache モジュールの資料 カテゴリ技術ネタ 社内の技術MTGで Apache モジュール入門なプレゼンをしたので、資料公開します。 非常に基礎的な内容ですが。 実際の Web サービスでの Apache モジュールの使いどころとしては、translate_name フェーズでゴニョる事が多いですね。 ユーザーへみせる URL と実体の場所との関係が複雑化してきた際には Rewrite でがんばるよりモジュール書いちゃった方がスッキリします。Apache ModuleView SlideShare presentation or Upload your own. (tags: apache module) 「技術ネタ」カテゴリの最新記事 タグ :#apache#presentation

  • Apache::Test事始め - D-6 [相変わらず根無し]

    Apache::Test事始め 年末前後からApache::Testで真面目にテストを書き始めている。 ところが全くドキュメントがないんだね。いや、あるんだけど、携帯の機能を使いたいだけなのにあの厚いマニュアル読むの?みたいな感じで。まぁというわけでとにかくざくざくっとドキュメント読んでテスト書いてたらようやくなんとなく分かってきた。この間ある程度他人にも説明できたので自信ついたしw Apache::Testはmod_perlハンドラをテストするときに使う。ディストリビューション等でmod_perlをテストしようと思うとApache自体を立ち上げたりなんだりしなければいけなくて「一体どうテストすればいいんじゃ?!」となりがちだが、Apache::Testを使うと、テスト用httpd.confの生成テスト用のapacheの起動/停止mod_perlハンドラ上で動かしたTest::More等の

  • mod_mod: Apache module を動的にコンパイルして実行する Apache module : DSAS開発者の部屋

    現在 WEBアプリケーションの開発言語といえばいわゆる Light Weight Langage が主流の様な気がしますが、C言語で WEBアプリケーションを書きた いと思った時、どのような方法があるでしょうか。一つはコンパイルした実行 オブジェクトを CGI として呼び出す方法、もう一つは apache module を書く という方法があると思います。 CGI の場合プロセス起動のオーバーヘッドがありますが apache module の 場合非常に高速です、にも関わらず apache module による WEB アプリケーショ ンの開発があまり流行っていないのはやはり、コード変更の度にコンパイルし なければならない事と、反映の際に apache を再起動しなければならない事が 原因ではないかと思います。 そこで、apache module っぽい C言語のコードをサーバー上で動的に

    mod_mod: Apache module を動的にコンパイルして実行する Apache module : DSAS開発者の部屋
  • 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を

  • livedoor Techブログ : DB(MySQL)をファイルシステムのかわりにする Apache モジュール

    こんにちは池邉です。 今回は実験的なApacheモジュールを公開してみたいと思います。。 どういう事をするモジュールかというと、あらゆるデータを MySQL に入れておき、ファイルシステムのかわりに使ってしまうモジュールです。 以下のようなテーブルを用意します。 CREATE TABLE vfs ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, path CHAR(100) NOT NULL, type CHAR(32) DEFAULT 'text/plain' NOT NULL, content MEDIUMBLOB, created_on DATETIME NOT NULL, updated_on TIMESTAMP, UNIQUE KEY(path) ) ENGINE=InnoDB; Apache の httpd.conf

    nipotan
    nipotan 2007/08/14
    しかしライブドアの「Webデベロッパー」は酷いですね^^;
  • If-None-Matchに「*」をつけたときの挙動 - 日向夏特殊応援部隊

    http://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/http/http_protocol.c の 334行目付近参照。 if_nonematch = apr_table_get(r->headers_in, "If-None-Match"); if (if_nonematch != NULL) { if (r->method_number == M_GET) { if (if_nonematch[0] == '*') { not_modified = 1; } else if (etag != NULL) { if (apr_table_get(r->headers_in, "Range")) { not_modified = etag[0] != 'W' && ap_find_list_item(r->pool, if_no

    If-None-Matchに「*」をつけたときの挙動 - 日向夏特殊応援部隊
  • naoyaグループ - naoyaの日記 - mod_proxy_balancer

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    naoyaグループ - naoyaの日記 - mod_proxy_balancer
  • おいぬま日報(不定期) - Apacheが"Couldn't create accept lock"とか言って起動しない場合の対処方法

    Couldn't create accept lock ×100 : .co.jpのGoogle検索 ×7, .comのGoogle検索 ×6, .co.jpのGoogle検索 ×6, .co.jpのGoogle検索 ×6, .co.jpのGoogle検索 ×5, .co.jpのGoogle検索 ×5, .co.jpのYahoo!検索 ×5, .comのGoogle検索 ×3, .comのGoogle検索 ×3, .co.jpのGoogle検索 ×3, .comのGoogle検索 ×2, .co.jpのGoogle検索 ×2, .co.jpのGoogle検索 ×2, .co.jpのGoogle検索 ×2, .co.jpのGoogle検索 ×2, .co.jp.のGoogle検索 ×2, .comのGoogle検索 ×1, .comのGoogle検索 ×1, .comのGoogle検索 ×1

  • mod_perlアプリの設定ファイルをApache起動時に読み込む方法について : no hacking, no life

    mod_perlのアプリケーションを作る時に、Configモジュールか何かにハッシュとかを書いて、モジュール自体をアプリの設定ファイル代わりにしていたが、やっぱり設定ファイルは別管理にしたいと思っていたので、ちょっと考えてみた。 startup.plはapacheの親プロセス起動時に一回だけ実行され、そこでuseされるモジュールのBEGINブロックはそのタイミングで実行されるので、そこでLoad処理をしてあげれば、apache起動時にしか設定ファイル読み込みのオーバーヘッドがかからず、読み込んだ内容を子プロセス間で共有できていいと思った。 つまり、以下のようなパッケージをstartup.plでuseするようにして、アプリケーションではパッケージ変数$confを参照するようします。 package Hoge::Config; use strict; use warnings; use YAM

    nipotan
    nipotan 2007/08/13
    それが一般的な方法
  • Erlang で分散 ApacheBench もどき - 酒日記 はてな支店

    書いてみた。どうも綺麗に書けてる気がしないのだが。(関数型の書き方に慣れてないのか……) ソースコードは末尾に。 HTTP のリクエストを並列に投げる部分はこんな感じで。 worker(): manager から URI を受け取って http:request()、結果を manager に戻す manager(): workerプロセスのリストを受け取って、それぞれの workerに仕事をやらせる / 完了したリクエストを数える / timer 処理 timer(): start / stop 間の経過時間を計る 複数ノード間で分散処理をするために必要な設定。 ホームディレクトリの .erlang.cookie ファイルの内容を同じにしておく。パーミッション 400 erl コマンドを -name 付きで起動する。 $ erl -name test Erlang (BEAM) emula

    Erlang で分散 ApacheBench もどき - 酒日記 はてな支店