Apache-2.4
Apache 反向代理 - 帶有 Cookie 的 HTTP 請求
我們有一個執行良好的 Apache 反向代理(配置如下)。現在我們需要將一些請求轉發到另一台伺服器(server3.domain.com)並檢查使用者請求中是否存在名為“LtpaToken”的cookie。如果 cookie 不存在,則會返回錯誤頁面(我們要阻止匿名請求)。
我需要將 http(s)://server.domain.com/jsreports/* 轉發到 JSReport 的 http(s) 伺服器 VM( server3.domain.com IP 地址)並檢查 LtpaToken 是否存在。
任何人都可以給出一些提示如何實施?謝謝!
SSLEngine on SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off ServerName server.domain.com ServerAlias server.com ProxyRequests Off # ProxyPreserveHost On <Proxy balancer://my_cluster> BalancerMember https://server.domain.com keepalive=on BalancerMember https://server2.domain.com keepalive=on status=+H AllowOverride None Order allow,deny allow from all # ProxySet lbmethod=byrequests </Proxy> <Location /balancer-manager> SetHandler balancer-manager Order deny,allow Deny from all allow from 192.168.1 allow from 5.5.20 allow from 10.0.0 </Location> ProxyPass /balancer-manager ! ProxyPass / balancer://my_cluster/ ProxyPassReverse / balancer://my_cluster/
您可以檢查標頭中是否存在
LtpaToken=
字元串,Cookie
如果找不到,則提供“/forbidden.html”頁面。RewriteEngine On RewriteCond "%{HTTP:Cookie}" "!LtpaToken=" [NC] RewriteRule ".*" "/forbidden.html" [R,P]
如果要返回 HTTP 錯誤(403),可以將最後一行替換為
RewriteRule ".*" - [F]