Nginx가 HAProxy 앞에 있어야합니까, 아니면 반대입니까?


11

웹 사이트 인프라 아키텍처 디자인에 대한 경험이 거의 없습니다. 상황에 따라 다를 수 있음을 알고 있습니다. 웹 사이트는 다음과 같습니다 :

1) 일부 페이지 (예 : 로그인 페이지)에 대해서는 HTTPS 지원이 필요하지만 다른 페이지는 HTTP 페이지 일뿐입니다.

2) 일부로드 밸런싱이 필요하도록 여러 개의 웹 서버가 필요합니다.

3) 성능을 향상 시키려면 HTTP 캐싱 및 압축이 필요합니다.

4) 일부 요청 (예 : 이미지 업로드)은 전용 백엔드 서버로 라우팅되어야합니다. 따라서 URL 기반 밸런싱이 필요합니다.

NginX와 HAProxy는 훌륭한 오픈 소스 리버스 프록시 및 / 또는로드 밸런서라는 것을 알고 있습니다. HAProxy는 SSL을 지원하지 않기 때문에 Nginx로드 밸런싱은 HAProxy만큼 좋지 않습니다. 둘 다 가져갈 게요

따라서 Nginx (역 프록시로)를 HAProxy 앞에 (로드 밸런서로) 또는 반대 방향으로 배치해야합니까?

감사

답변:


7

당신이하려는 경우 모든 HTTPS를 통해 사용 가능한 웹 서버를, 당신은 HAProxy 앞에 Nginx에 설치해야합니다. 해당 구성을 사용하면 Nginx는 모든 SSL 작업을 처리하고 해독 된 HTTP 트래픽을 HAProxy 프론트 엔드로 직접 보낸 다음 지정한 규칙에 따라 웹 서버로 요청을로드 밸런스합니다.

womble 에서 언급했듯이 LVS를 사용하는 아이디어는 웹 서버와 사이트에 액세스하는 클라이언트 사이의 연결을 유지하지 않기 때문에 다소 덜 관대 하다는 것입니다. 반면에 LVS는 단순한로드 밸런싱 만 제공하며 파일 확장자, 요청 된 URL, 헤더 등을 기반으로 요청을 전달할 수 없습니다. 따라서 HAProxy는 여러 상황에서 사용됩니다.

부하가 분산되지 않은 한 서버에 SSL 만 필요한 경우 Nginx를 사용하지 않고 HAProxy를 사용하는 것이 안전합니다. 반면에 HAProxy가 해당 주소를 다시 작성하기 때문에 웹 서버의 HTTPS 로그에서 클라이언트의 소스 IP 주소를 볼 수없는 문제가 있습니다. IP를 활성화하면 IP가 HAProxy 로그에있게됩니다.


감사. "일부 요청 (예 : 이미지 업로드)은 전용 백엔드 서버로 라우팅되어야하므로 URL 기반 밸런싱이 필요합니다." (질문을 업데이트했을 때). LVS가 요구 사항을 충족하지 못할 수 있습니다.
Morgan Cheng

BTW, HAProxy에 의한 IP 주소 숨기기는 HTTPS 또는 HTTP 전용입니까?
Morgan Cheng

@Morgan, IP 숨기기는 HTTPS 전용입니다.

TCP 모드 백엔드 전용이므로 HTTP가 아닌 경우 HTTP 헤더 (X-Forwarded-For)로 전송되므로 IP 주소가 표시되지 않습니다.

정확히. Haproxy는 클라이언트의 IP 주소를 사용하여 서버에 연결할 수 있지만 커널 협력이 필요합니다 (예 : TPROXY 기능). 그러나 가능하면 피해야합니다.
Willy Tarreau


1

nginx를 사용하면 프론트 엔드 웹 서버로 필요한 모든 기능을 수행 할 수 있습니다. 프론트 엔드로드 밸런싱이 필요한 경우 Linux Virtual Server 와 같은 L3로드 밸런서를 사용하십시오 . HAproxy처럼 방해가되지 않기 때문입니다. 백엔드 작업자 풀에 요청을 분산시키는 것과 같이 비하 중로드 밸런싱을 수행하려면 HAproxy를 사용하십시오.


2
NginX로드 밸런싱은 간단하고 라운드 로빈 방식이라고합니다. 이것이 제가 HAProxy를 고려하는 이유입니다.
Morgan Cheng

1
올바르게 말하고 있습니다. 나는 그것을 스스로 말했다. 그렇기 때문에로드 밸런서로 nginx를 사용하지 않는 것이 좋습니다.이 (또는 다른) 내 대답에서 nginx를로드 밸런서로 사용하는 것에 대한 언급은 없습니다.
울리다

그것은 소스 (또는 FreeBSD의 포트)에서 자신의 컴파일을 사용하는 것을 두려워하는 경우에만 해당됩니다. 로드 밸런싱을 향상시키는 여러 타사 모듈이 있습니다. wiki.nginx.org/3rdPartyModules
Martin Fjordvald

2
예, 개선하십시오. 적당히하세요 이것에 대한 나의 생각은 hezmatt.org/~mpalmer/blog/2011/07/24/… 에서 찾을 수 있습니다 .
womble
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.