백엔드 웹사이트의 페이지를 제공하는 프런트엔드 프록시 서버가 있습니다(둘 다 Apache 2.4 실행).
# Apache config snippet from frontend server
SSLProxyEngine on
ProxyPass "/blah" "https://backend.invalid/blah"
ProxyPassReverse "/blah" "https://backend.invalid/blah"
(즉, 다음 중 하나에 액세스하십시오.https://frontend.invalid/blah실제로 백엔드 사이트에서 콘텐츠를 검색합니다. 이것은 예상대로 작동합니다. )
Require ip 123.123 172.20.0.0/16
백엔드 사이트에서 일부 유지 관리 작업을 수행하기 위해 이제 특정 IP 범위(예: 여러 범위의 경우 등)에서 프록시(및 백엔드 사이트)에 대한 액세스만 허용 하고 모든 요청을 허용하려고 합니다.아니요이러한 범위 내에서 이러한 요청을 상태 페이지가 있는 다른 사이트로 리디렉션합니다.
mod_rewrite
나는 이것이 상당히 복잡한 구성(항상 "몇 잔의 커피 필요" 작업) 및/또는 If
and 지시문의 사용을 요구할 것이라고 생각합니다 Else
.
누구든지 이것을 설정하는 가장 좋은(또는 가장 쉬운) 방법을 제안할 수 있습니까?
답변1
귀하의 사용 사례에서 빠진 것이 없다면 아마도 간단히 <If>
사용할 수 있습니다-ipmatch
운영자, 와 결합Redirect
지침.
<If "! ( %{REMOTE_ADDR} -ipmatch '172.20.0.0/16' )">
Redirect https://other.com/...
</If>
요청을 하는 사용자 에이전트의 원래 IP(아마도 프록시 소스 IP가 아님)를 열어야 하는 경우에도 활성화합니다.mod_remoteip기준 치수CONN_REMOTE_ADDR
대신 변수를 사용하세요 REMOTE_ADDR
.
(...그래서 임무는 커피 몇 모금만 마실 수 있을 만큼 길 수도 있습니다;)