人気記事

広告

記事検索

MOVION.netについて

WEB技術に関することや、気になるWEBサイトなどについて個人的なメモを残すためのブログです。

その他運営サイト

かかわっているサイト

Apache1.3のmod_proxyで否定の”!”を無理やり利用する

リバースプロキシーを設定する際、
Apache2系以降では使えるが、apache1.3ではmod_proxyのProxyPass否定形が使えない。

Apache2系の場合には使える

  1. ProxyPass /mirror/foo/i !
  2. ProxyPass /mirror/foo http://backend.example.com

Apacheのバージョンアップなども諸事情で困難な場合、
Apache1.3内のCのファイルを書き換えることで一応対応できる。
(苦し紛れ対応だが)

▼前提条件
・Apache1.3.37の場合(多少違うバージョンでも動作可能と思われます)
・Apache1.3.37が /usr/local/apache にインストールされている場合
・Apacheのソースが/usr/local/src/apache_1.3.37/にある場合
・DSO(mod_so)が組み込まれている場合

▼修正方法

  1. vi /usr/local/src/apache_1.3.37/src/modules/proxy/mod_proxy.c

※『static int proxy_trans』にApache2系のmod_proxyに記載されているif文を追加する。
※以下はdiffの結果です。

  1. *** mod_proxy.c.orig    2011-05-23 20:58:11.000000000 +0900
  2. — mod_proxy.c 2011-05-23 20:58:57.000000000 +0900
  3. ***************
  4. *** 158,163 ****
  5. 158,167 —-
  6. len = alias_match(r->uri, ent[i].fake);
  7.  
  8. if (len > 0) {
  9. +            if ((ent[i].real[0] == ‘!’ ) && ( ent[i].real[1] == 0 )) {
  10. +                return DECLINED;
  11. +            }
  12. +
  13.               r->filename = ap_pstrcat(r->pool, "proxy:", ent[i].real,

その後、インストールをすると適応されます。

  1. cd /usr/local/src/apache_1.3.37/src/modules/proxy
  2. /usr/local/apache/bin/apxs -c *.c
  3. /usr/local/apache/bin/apxs -i mod_proxy.so
Apache | 2011年05月24日(火) | コメント(0) | トラックバック(0)
add to hatena hatena.comment add to del.icio.us add to livedoor.clip add to Yahoo!Bookmark

この記事にはまだコメントがついていません。

Comment Feed Comment feed for this entry

Trackback URI :

コメントをどうぞ

段落や改行は自動挿入です。メールアドレスはサイト上では非表示です。