haproxy: 백엔드 서버를 직접 가리키는 링크를 가로채는 방법

haproxy: 백엔드 서버를 직접 가리키는 링크를 가로채는 방법

나는 haproxy를 설정했고 잘 작동합니다. 백엔드의 서버에 있는 웹 페이지에 액세스할 수 있습니다.

설정은 다음과 같습니다:

포트에 따라 다른 백엔드를 가리키는 단일 프런트엔드 haproxy 서버가 있습니다.

  • 프론트엔드:81포인트 백엔드:8100
  • 프론트엔드:82포인트 백엔드:8200

프런트엔드 웹 페이지에는 이와 http://frontend:82/같은 링크가 있으므로 http://frontend:82/foo이러한 링크 중 하나를 클릭할 때마다 haproxy는 적절한 백엔드 서버에 연결하는지 확인합니다. 이러한 링크 중 하나는 http://backend:8200/bar(백엔드 서버 및 다른 포트)를 가리킵니다.

해당 링크를 클릭하면 프런트엔드 haproxy가 아닌 백엔드의 서버로 리디렉션됩니다. 백엔드 서버에 대한 호출을 가로챌 수 있는 방법이 있나요?

답변1

사용자가 링크를 클릭하면 http://backend:8200/bar'백엔드'에 대한 DNS가 haproxy를 가리키지 않는 한 요청을 포착하지 못할 것입니다.

포트는 아마도 이 작업을 수행하는 최선의 방법은 아닐 것입니다.

80에 프런트엔드를 갖고 URL 기반 acl을 사용하는 것이 더 나을 것입니다.

예:

frontend http_frontend 
   bind *:80
   acl path_foo path_beg /foo
   acl path_barbar path_beg /bar 
   use_backend foo_backend if path_foo
   use_backend bar_backend if path_bar

backend foo_backend
   server backend:8200

backend bar_backend
   server backend:8100

이렇게 하면 링크에서 모든 포트 할당을 제거할 수 있습니다.

관련 정보