2009年 06月 27日

Apache2 を置換プロキシにする

cocproxy みたいなのを Apache できないかと思ってやってみた。(パフォーマンスの問題)

/Users/cho45/app/proxy にファイルを置くことにする。置換したいリクエストのパスと完全に一致する必要がある (http://s.hatena.ne.jp/js/HatenaStar.js を置換したければ /Users/cho45/app/proxy/js/HatenaStar.js をおく)

#!/opt/local/apache2/bin/httpd -f $PWD/proxy.apache.conf -k restart
ServerRoot "/opt/local/apache2"
PidFile /tmp/proxy.pid

Listen 5432
Timeout 300
KeepAlive On
StartServers        1
MinSpareServers     1
MaxSpareServers     3
MaxClients          5
MaxRequestsPerChild  50

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so

LoadModule log_config_module modules/mod_log_config.so
LoadModule include_module modules/mod_include.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so

TypesConfig /opt/local/apache2/conf/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
</IfModule>

ErrorLog /tmp/proxy.error_log
CustomLog /tmp/proxy.access_log common

LogFormat "%h %l %u %t \"%r\" %>s %b" common

DocumentRoot /Users/cho45/app/proxy

RewriteEngine On
RewriteCond  /Users/cho45/app/proxy/%{REQUEST_FILENAME} !-f
RewriteRule (.*) http://%{HTTP_HOST}$1 [P]

#RewriteLogLevel 2
#RewriteLog /tmp/proxy.rewrite_log