web-dev-qa-db-ja.com

Apacheリバースプロキシ、mod_ext_filter

紳士、ストリームのフッターにgoogle analytics/piwikjavascriptビットを挿入しようとしています。

何らかの理由で、ProxyPass/ProxyPassReverse/vhostsでこれを実行できるとは思いません...

誰かが私を正しい方向に向けることができれば、それは大いにありがたいです!

<VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot /usr/local/Apache/htdocs/
        ServerName search.domain.com
        ServerAlias search.domain.com
        ErrorLog logs/search.domain.com-error_log
        #CustomLog logs/search.domain.com-access.log combined

        CustomLog "|/usr/local/Apache/bin/rotatelogs /usr/local/Apache/logs/search.domain.com-access_log 100M" common

        <Proxy balancer://searchdomain>
            BalancerMember http://157.150.186.79
            BalancerMember http://157.150.35.20
        </Proxy>

        ExtFilterDefine piwik-search.domain.com cmd="/bin/sed s/<\/html>/<!-- Piwik --> <script type=\"text/javascript\"> var pkBaseURL = ((\"https:\" == document.location.protocol) ? \"https://weblog.domain.com/\" : \"http://weblog.domain.com/\"); document.write(unescape(\"%3Cscript src='\" + pkBaseURL + \"piwik.js' type='text/javascript'%3E%3C/script%3E\")); </script><script type=\"text/javascript\"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + \"piwik.php\", 7); piwikTracker.trackPageView(); piwikTracker.enableLinkTracking(); } catch( err ) {} </script><noscript><p><img src=\"http://weblog.domain.com/piwik.php?idsite=7\" style=\"border:0\" alt=\"\" /></p></noscript> <\/html>/ig"
        #AddOutputFilter piwik-search.domain.com htm html
        AddOutputFilter piwik-search.domain.com htm html shtml

        RewriteEngine on
        ProxyPass / balancer://searchdomain/
        ProxyPassReverse / balancer://searchdomain/

</VirtualHost>
1
CMag

解決策はありませんが、答えの根本的な原因はhttp圧縮です。サーバーはhttpレベルでデータを圧縮しています。プロキシは圧縮されたデータを認識し、文字列の照合は失敗します。

私は同じ問題を見てきました。最善の解決策はわかりませんが、他の答えに非常に興味があります。

1
Le Fab