Haproxy

Haproxy frontend http to backend https

babbeolicoding 2023. 6. 6. 17:03

1. 특정 도메인으로 들어온 값 구분하기

- hdr_beg(host) -i 를 사용하면 특정 host로 들어온 값을 구분할 수 있다.

frontend front_server
  bind *:8888
  acl auth hdr_beg(host) -i before-ahostname
  acl interface hdr_beg(host) -i before-bhostname
  use_backend backend-a if a-host
  use_backend backend-b if b-host

 

2. Host 변경

- set-header Host , replace-header Host 등 자유롭게 사용하면 된다

- host 뿐만 아니라 path도 변경해야 되는 경우는 여러가지 방법이 있겠지만

  set-uri를 넣고 뒤에 path 부분을 수정해주면 된다.

#header를 변경하는 경우(path 변경 필요없음)
http-request set-header Host after-ahostname.com
http-request replace-header Host ^before-ahostname.(.*)$ after-ahostname.\1

#uri를 변경하는 경우(path도 같이 넣어줘야함)
http-request set-uri https://after-ahostname.com%[path]

 

3. backend server 호출

- "ssl verify none" 을 사용하면 SSL 인증서 확인을 비활성화함.

server a serverhost:443 ssl verify none

백엔드 서버에 대한 SSL 인증서 확인을 비활성화하는 옵션 "ssl verify none"
HAProxy는 SSL/TLS를 통해 연결할 때 서버의 SSL 인증서를 확인하지 않음.
SSL 인증서 확인을 비활성화하면 보안이 취약해지기 때문에 꼭 숙지해야 함.
일반적으로 SSL 인증서 검사는 HAProxy와 백엔드 서버 간의 
SSL/TLS 통신의 보안 및 무결성을 보호함.

 

추가적으로 backend에서 server:443으로 호출 시

ssl verify none이나 인증서를 설치하지 않으면 아래 이미지처럼 502 bad gate 오류가 발생.

 

'Haproxy' 카테고리의 다른 글

Haproxy log 설정  (0) 2023.06.15
haproxy 예전 frontend로 서비스 호출되는 경우  (0) 2023.06.14
Haproxy resolver 설정(Dynamic DNS resolution)  (0) 2023.06.13