Apache VirtualHost - 사용자별 ProxyPass

Apache VirtualHost - 사용자별 ProxyPass

인증 자격 증명을 기반으로 사용자를 다른 경로로 리디렉션하도록 Apache를 구성하려고 합니다.htpasswd). 설정에 성공했어요프록시패스, 이를 통해 요청을 사용자 정의 경로로 리디렉션할 수 있지만 이제 모든 사용자가 동일한 경로로 리디렉션됩니다. 이는 <Location />모든 사용자에게 동일한 지시문을 사용하기 때문에 발생합니다 . <Location /user123>, ,..을(를) 시도하면 의도한 대로 작동하지만 Apache가 제공된 자격 증명을 기반으로 적절한 경로로 위치를 <Location /user456>전달하고 싶습니다 . /이것이 가능한가?

답변1

mod_rewrite로 아파치를 살펴봅니다. 나는 당신이 다음과 같은 일을 할 수 있다고 믿습니다. Remote_user 변수는 구성에서 Apache에 사용할 수 있습니다. 나는 당신이 다음과 같은 일을 할 수 있다고 믿습니다.

RewriteCond "%{REMOTE_USER}"  "!^$"
RewriteRule "^/(.*)"  "/$1/%{REMOTE_USER}" [R]

조건은 빈 문자열이 아닌 값을 가진 원격 사용자가 존재하는 경우 원격 URL로 URL을 다시 작성한다는 것입니다. 또한 리디렉션 일치를 수행할 수도 있습니다.

RedirectMatch "^/(.*)" "/$1/%{REMOTE_USER}"

여기 내 참고 자료가 있습니다. 이것은 mod_rewrite에 사용 가능한 변수를 보여줍니다. https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

이것은 작동 중인 mod_rewrite의 예를 보여줍니다. https://httpd.apache.org/docs/2.4/rewrite/remapping.html

답변2

htpasswd 파일을 사용하여 인증하기 위해 Apache 인스턴스를 사용하고 있으므로 질문을 더 자세히 살펴보십시오. REMOTE_USER 변수를 참조할 수 있다고 생각합니다.

나는 당신이 아파치 설정에서 다음과 같은 것을 사용할 수 있다고 믿습니다.

ProxyPass / http://localhost:8080/%{REMOTE_USER}/
ProxyPassReverse / http://localhost:8080/%{REMOTE_USER}/

관련 정보