我正在尝试使用透明的 apache 反向代理配置对响应主体执行搜索和替换操作,下面使用“mod_substitute”和“mod_proxy”的配置按预期工作:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
ProxyPass / http://thedomain.ineed.proxied/
ProxyPassReverse / http://thedomain.ineed.proxied/
# Set location
<location />
SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
Substitute "s|<script src=\"http://static.ak.fbcdn.net/connect.php/js/FB.Share\" type=\"text/javascript\"></script>| |niq"
</location>
</VirtualHost>
现在的问题是我需要从上游代理服务器响应主体中删除大量垃圾,而 mod_substitute 仅提供逐行处理,既不高效也不实用。有没有其他模块或方法可以解决这个问题?
答案1
我所需要的是使用 nginx 和这个模块轻松实现的 -https://github.com/agentzh/replace-filter-nginx-module