
나는 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
이렇게 하면 링크에서 모든 포트 할당을 제거할 수 있습니다.