« Grailsのトランザクション | メイン | なんとなくわかってきた »

Mac で WebDAV + mod_proxy = Chunked 問題

今時というか、かなり前から、Mac や、Windows には、WebDAVクライアント機能がついていて、何も考えずに WebDAV を利用できる。
だいぶ、利用実績もあるはずだと思うんだけど、未だに、サーバー設定に関しては、「やってみた」的な情報しか、Google 先生は、教えてくれない。まあ、探し方が悪いのかもしれないが。
Mac で WebDAV の環境を構築していて、つまずいてしまったので、その記録。

単純に、固定グローバル IP を持ったサーバーで、Apache による WebDAV を構築する分には、ServerName さえ正確に設定していれば、さらっと使えるようになる。
この辺は、かなり前から実装されていることもあり、あっけなく使えるようになる。

ネットワーク環境の都合により、mod_proxy 経由で公開する必要がある場合がある。
実際、グローバル固定 IP が足りなかったので、mod_proxy を設定して、WebDAVにつないでみた。
見た感じ、ファイルは、見えるし、コピー(ダウンロード)もできる。
ところが、アップロードしてみたところが、ちゃんと、コピーダイアログが表示されて、プログレスバーは、進行して、正常に完了するのに、ファイルを見ると、サイズが0だったりする。
ちゃんと、ServerName が渡っていないのかと思い、サーバーのホスト名や、Apache 上のServerName の設定をあーでもない、こーでもないと、変えてみたりしてみたけど、一向に、コピーできる気配がない。
しかも、Windows からは、ちゃんとコピーできるようだ。

さんざん、悩んで、時間を費やしたあげく、どうやら、Mac と、Apache のHTTPに関する仕様の解釈の違いで問題が起きていたようだ。

ここによると、ファイル転送の際のヘッダ情報 Chunked が、大文字か、小文字かの違いでこういうことになっているらしい。
そこで、以下のように RequestHeader を書き換える設定を加えてやる。

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
RequestHeader edit Transfer-Encoding Chunked chunked early

なんと、あっけなく、コピーができるようになった。
ショボーンな感じ。

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/116

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年09月02日 22:41に投稿されたエントリーのページです。

ひとつ前の投稿は「Grailsのトランザクション」です。

次の投稿は「なんとなくわかってきた」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。