Обратный прокси-сервер Apache — HTTP-запросы с файлом cookie
У нас есть обратный прокси-сервер Apache, который работает нормально (конфигурация ниже). Теперь нам нужно переслать несколько запросов на другой сервер (server3.domain.com) и проверить наличие файла cookie с именем «LtpaToken» в запросе пользователя. Если файл cookie отсутствует, вернется страница с ошибкой (мы хотим заблокировать анонимные запросы).
Мне нужно переслать http(s)://server.domain.com/jsreports/* на виртуальную машину http(s) сервера JSReport(IP-адрес server3.domain.com) и проверить 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/
1 ответ
Вы можете проверить наличиеLtpaToken=
строка вCookie
заголовок и отображает страницу «/forbidden.html», если она не найдена.
RewriteEngine On
RewriteCond "%{HTTP:Cookie}" "!LtpaToken=" [NC]
RewriteRule ".*" "/forbidden.html" [R,P]
Если вы хотите вернуть ошибку HTTP (403), вы можете заменить последнюю строку на
RewriteRule ".*" - [F]