나는 HAProxy가 작동하도록하기 위해 인터넷의 깊이를 샅샅이 뒤졌지만 내가 원하는 것을 성취 할 수 있는지 확신하지 못했습니다. 여기 https://www.haproxy.com/blog/howto-write-apache-proxypass-rules-in-haproxy/HAproxy 하위 디렉토리
을 내 시나리오입니다 :
나는이 다음을 시도 내가 HAProxy가http://backend-ip:8999/
에서 APP1의 루트를 데려 와야한다
https://PUBLIC-IP-ADDRESS/app1
에 갈 때 포트 8999.에서 APP1를 실행하는 VM을 가지고있다.
제가 직면 한 문제는 초기 연결을 프록시 처리하기 위해 HAProxy를 얻을 수 있지만 모든 후속 요청은 기본 백엔드 서버의 루트로 이동한다는 것입니다.
frontend www-https
bind *:8989 ssl crt /ssl/server.pem
log global
option httplog
reqadd X-Forwarded-Proto:\ https
rspadd Strict-Transport-Security:\ max-age=31536000;\ includeSubDomains
acl app1 path_beg -i /app1 /app1/
use_backend www-app1 if app1
default_backend www-backend
backend app1
option http-server-close
option forwardfor
reqirep [\:])\ /app1/(.) \1\ /\2
acl hdr_location res.hdr(Location) -m found
rspirep Location:\ (https?://Public-IP-ADDRESS(:[0-9]+)?)?(/.*) Location:\ /app1\3 if hdr_location
server app1 bk.IP-ADDRESS:8999 check
/app1/
에가는 지금은 작동하지만 모든 링크는 /
을 가리 킵니다. 어디서든지 클릭하면 https://PUBLIC-IP-ADDRESS
으로 돌아옵니다.
도움을 주시면 대단히 감사하겠습니다.
(나는이 하나를 선택할 것)하지만, 모자는 옵션이 아닙니다. 그래서 ive는 HAproxy를 삭제하고 대신 아파치로 작업하도록했습니다. 그래도 제안을 주셔서 감사합니다. – Justin