アーカイブ

‘Apache’ カテゴリーのアーカイブ

RewriteLogとRewriteLogLevelがない。 このエントリーを含むはてなブックマーク はてなブックマーク - RewriteLogとRewriteLogLevelがない。

2012 年 5 月 5 日 Comments off

mod_rewrite – Apache HTTP Server

This functionality has been completely replaced by the new per-module logging configuration mentioned above.

あーそうなの。ということで、

LogLevel alert rewrite:trace3
カテゴリー: Apache タグ:

Apacheは知らないhttpステータスは返さない。 このエントリーを含むはてなブックマーク はてなブックマーク - Apacheは知らないhttpステータスは返さない。

2010 年 2 月 11 日 Comments off

正しくは、500を返す。

render :nothing => true, :status => 450

なんてことをしていて、Mongrelの開発環境だとちゃんと450が返ってくるのにApache+Passengerの検証環境だと500が返ってきていた。
そこで原因を調べたところ、返す可能性のあるステータスコードはすべて定義されていて、それ以外は500で返している。(※ソースは後述)

で、なんでこんなことをしようとしているのか。Flashのアップローダを作ってFileReference#upload()でアップロードしているのだけれど、こいつが結果をHTTPステータスでしか受け取れない。だから、結果のメッセージをサーバから返してそれを表示する、てこともできない。
アップロード自体が成功したか否かを知るには200かそれ以外か、くらいで十分なんだけれど、アプリ要件(たとえば、アップロードが終わってからファイルを受け付けられない状況になってただとか、ファイルの中身を見て判断しなきゃいけないだとか)での結果を返すには、これでは足りない。
結局、Apacheのソースコメントでunusedとなっていた418~421に意味を持たせ、そこを使って対応しました。層を混同していて気持ちがいいものではないのだけれど、影響範囲は広くなく、なんらかのフラグを立てて別リクエスト、のコスト増を考えるといいだろうとの判断。もしなにかいい方法があったら教えてください。

以下、Apacheソースの該当部分。
続きを読む…

カテゴリー: Apache, Rails タグ:

バーチャルホストでSSL。 このエントリーを含むはてなブックマーク はてなブックマーク - バーチャルホストでSSL。

2006 年 11 月 8 日 Comments off

名前ベース・バーチャルホストWWWサーバの構築

SSL セキュアサーバではアクセス時に最初に SSL の認証シーケンスが走ります。しかし、その時点では Apache はアクセスしてきたホスト名が分からないため、証明書の交換は先頭のバーチャルホストのデータを元に行われます。従って、名前ベースのバーチャルホストでは、SSL は一つのバーチャルホストしか扱えません。

ってことを知らなくて、ハマった。確かにどのホスト名でアクセスしてもひとつめのドキュメントルートが表示されてた。
で、IPベースはというと・・・

Apache の IP ベースのバーチャルホストサポート – Apache HTTP サーバ

IP ベース という名前が示すように、サーバには IP ベースのバーチャルホストそれぞれにつき、別々の IP アドレスが 必要です。複数の物理コネクションを持っているマシンを用意するか、 最近のオペレーティングシステムでサポートされているバーチャル インタフェース (詳細はシステムの説明書を読んでください。たいていは “ip エイリアス” と呼ばれていて、設定には普通 “ifconfig” コマンドを 使います) を使うかで実現できます。

おーエイリアスでいいのか。こっちでいくか、外に出すものではないし。

カテゴリー: Apache タグ:

Apache黙る。 このエントリーを含むはてなブックマーク はてなブックマーク - Apache黙る。

2006 年 9 月 30 日 Comments off

突然Apacheが黙った。プロセスは生きてるっぽいけど画面真っ白。
error_logをみたらこんなのがいっぱい。

...
[Sat Sep 30 21:27:18 2006] [notice] child pid 27980 exit signal File size limit exceeded (25)
[Sat Sep 30 21:27:18 2006] [notice] child pid 27981 exit signal File size limit exceeded (25)
[Sat Sep 30 21:27:18 2006] [notice] child pid 27982 exit signal File size limit exceeded (25)
[Sat Sep 30 21:27:18 2006] [notice] child pid 27983 exit signal File size limit exceeded (25)
[Sat Sep 30 21:27:18 2006] [notice] child pid 27985 exit signal File size limit exceeded (25)
...

リミット?ってことでhttpd.confを確認してもそれらしきところはなく、ググってみたらApache-Usersのメーリングリストにレポートを発見。
http://mm.apache.or.jp/pipermail/apache-users/2005-February/005184.html
おーなるほど。で、

-rw-r--r--    1 root     root     2147483647  9月 30 21:00 rewrite_log

これか。mod_rewriteのRewriteLogLevelを最大にしていたのを忘れてた。
わりとどうでもいいサーバだからって放置にも限度があるだろ的な。というか、ぴったり2GBってところになぜか感心。
またひとつ賢くなった・・・のか?

カテゴリー: Apache タグ:

Apacheに標準で組み込まれるモジュール。 このエントリーを含むはてなブックマーク はてなブックマーク - Apacheに標準で組み込まれるモジュール。

2006 年 1 月 24 日 Comments off

分かってませんでしたシリーズ。
Apacheのconfigureオプションはenableとdisableがたくさんあって、デフォルトでどのモジュールが組み込まれるのかよく分かってませんでした。
そこで、このオプション。

# /usr/local/apache2/bin/httpd -l

組み込まれてるモジュールが一覧されます。
ちなみにApache 2.2.0のデフォルトはこちら↓

Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c

コレを見てconfigureすればイイジャン!・・・って、コンパイルしないと見られないか。鶏と卵。

カテゴリー: Apache タグ:

Apache HTTP Server 2.2.0 Released. このエントリーを含むはてなブックマーク はてなブックマーク - Apache HTTP Server 2.2.0 Released.

2005 年 12 月 2 日 コメント 1 件

Apache HTTP Server Project

The Apache Software Foundation and The Apache HTTP Server Project are pleased to announce the release of version 2.2.0 of the Apache HTTP Server (“Apache”).

Apache 2.2.0がリリースされました。
これで安定リリースのApacheを使ってもmod_proxy_ajp(+mod_proxy)でTomcatとつなげるようになりました。
んが、TomcatのサイトのコネクタFAQでは

mod_jk is great and should be used for production. It is getting fixes as needed (which is now rare).

mod_proxy_ajp. With apache 2.2, mod_proxy was rewritten to support load balancing as well as a new transport called mod_proxy_ajp. This module is distributed with the Apache http server, not the Tomcat server.

となってます。
うーん、ちゃんとメリット、デメリットを理解しないとな。

カテゴリー: Apache タグ: