리눅스를 위한 상위 10개 오픈 소스 리버스 프록시 서버

A reverse proxy server is a type of proxy server that is deployed between clients and back-end/origin servers, for example, an HTTP server such as NGINX, Apache, etc.. or application servers written in Nodejs, Python, Java, Ruby, PHP, and many other programming languages.

게이트웨이 또는 중개 서버는 클라이언트 요청을 받아들이고 하나 이상의 백엔드 서버로 전달한 다음 서버에서 응답을 가져와 클라이언트에게 다시 전달하여 컨텐츠가 반전 프록시 서버 자체에서 발생한 것처럼 보이도록 하는 역할을 합니다.

일반적으로 반전 프록시 서버는 사설 네트워크의 백엔드 서버에 대한 액세스를 제어하고 보호하기 위해 ‘프론트엔드’로 사용되는 내부 프록시입니다. 일반적으로 네트워크 방화벽 뒤에 배치됩니다.

이는 백엔드 서버가 보안을 강화하기 위해 익명성을 달성하는 데 도움이 됩니다. IT 인프라에서 반전 프록시는 응용 프로그램 방화벽, 로드 밸런서, TLS 종료자, 웹 가속기(정적 및 동적 콘텐츠 캐싱) 등으로도 작동할 수 있습니다.

본 문서에서는 리눅스 시스템에서 사용할 수 있는 상위 10개의 오픈 소스 반전 프록시 서버를 검토해 보겠습니다.

1. HAProxy – (TCP/HTTP 로드 밸런서)

HAProxy (HAProxy, 고가용성 프록시로 알려진 High Availability Proxy), TCP 및 HTTP 기반 애플리케이션을 위한 무료, 오픈 소스, 매우 빠르고 안정적이며 최고 수준의 로드 밸런서 및 프록시 소프트웨어입니다. 고 가용성을 위해 구축되었습니다.

HAProxy는 HTTP 리버스 프록시, TCP 프록시 및 정규화기, SSL/TLS 종료자/시작자/언로더, 캐싱 프록시, HTTP 압축 언로더, 트래픽 조절기, 콘텐츠 기반 스위치, FastCGI 게이트웨이 등입니다. 또한 DDoS 및 서비스 남용에 대한 보호기능을 제공합니다.

이는 이벤트 주도형, 논블로킹 엔진으로 구동되며 매우 빠른 I/O 레이어와 우선순위 기반의 멀티 스레드 스케줄러를 결합하여 수만 개의 동시 연결을 쉽게 처리할 수 있도록 합니다.

특히, HAProxy는 애플리케이션이 모든 관련 정보를 받을 수 있도록 클라이언트의 연결 정보를 백엔드 또는 오리진 서버로 전달하기 위해 PROXY 프로토콜을 사용합니다.

HAProxy의 기본 기능에는 프록시, SSL 지원, 서버 상태 모니터링 및 상태, 고가용성, 로드 밸런싱, 스티키 세션(방문자를 다양한 이벤트를 통해도 동일한 서버에 유지), 콘텐츠 스위칭, HTTP 리라이팅, 리다이렉션, 서버 보호, 로깅, 통계 등이 포함됩니다.

2. NGINX – (HTTP 및 리버스 프록시 웹 서버)

NGINX는 무료, 오픈 소스, 고성능, 매우 인기 있는 HTTP 서버 및 리버스 프록시입니다. 또한 IMAP/POP3 프록시 서버로 작동합니다. NGINX는 높은 성능, 안정성, 풍부한 기능 세트, 간단하고 유연한 구성, 낮은 자원 소비(특히 작은 메모리 풋프린트)로 잘 알려져 있습니다.

HAProxy와 마찬가지로, NGINX는 이벤트 기반 아키텍처를 가지고 있어 수만 개의 동시 연결을 처리하는 데 문제가 없으며, 이는 HAProxy의 PROXY 프로토콜을 사용하기 때문입니다.

NGINXngx_http_proxy_module 모듈을 사용하여 캐싱을 이용한 가속화된 역방향 프록시를 지원하며, FastCGI, uwsgi, SCGI, Memcached와 같은 HTTP 이외의 프로토콜을 통해 다른 서버로 요청을 전달할 수 있습니다.

중요한 점은 대규모 분산 컴퓨팅 시스템의 중요한 측면인 로드 밸런싱과 내결함성을 지원합니다. ngx_http_upstream_module 모듈을 사용하여 클라이언트로부터 오는 요청을 분산시킬 백엔드 서버 그룹을 정의할 수 있습니다.

이를 통해 애플리케이션은 더욱 견고하고 가용성이 높아지며 신뢰성이 높아지며, 응답 시간과 처리량이 향상됩니다. 또한, 보안 측면에서 SSL/TLS 종료 및 다양한 보안 기능을 지원합니다.

읽어볼 만한 Nginx 웹 서버 관련 유용한 기사들:

3. Varnish – (역방향 캐싱 프록시)

Varnish HTTP 캐시 (또는 Varnish 캐시 또는 간단히 Varnish)는 무료, 오픈 소스, 고성능 및 매우 인기 있는 캐싱 리버스 프록시 소프트웨어로 웹 응용 프로그램 가속기로 더 잘 알려져 있으며 서버 측 캐싱을 사용하여 HTTP 성능을 향상시키는 데 설계되었습니다.

클라이언트와 HTTP 웹 서버 또는 응용 프로그램 서버 사이에 배치되며 클라이언트가 웹 서버에서 정보나 리소스를 요청할 때마다 Varnish는 정보의 사본을 저장하여 클라이언트가 동일한 정보를 다음에 요청할 때 Varnish가 웹 서버에 요청을 보내지 않고 제공하여 서버의 부하를 줄이고 웹 콘텐츠 전달 속도를 높입니다.

Varnish는 들어오는 요청이 어떻게 처리되어야 하는지, 어떤 콘텐츠가 제공되어야 하는지 및 어디서 제공해야 하는지, 요청 또는 응답을 어떻게 변경해야 하는지 등을 시스템 관리자가 구성할 수 있게 하는 Varnish 구성 언어 (VLC)라고 알려진 유연한 구성 언어를 사용합니다.

varnish는 또한 확장 가능합니다 – 사용자는 Varnish Modules (VMODs)를 사용하여 사용자 지정 모듈을 작성하거나 커뮤니티에서 제공하는 모듈을 사용할 수 있습니다.

Varnish의 주요 제한 사항은 SSL/TLS의 지원 부족입니다. HTTPS를 활성화하는 유일한 방법은 앞단에 SSL/TLS 종단자 또는 오프로더로 HAProxy 또는 NGINX를 배치하는 것입니다.

4. Træfɪk – (The Cloud Native Application Proxy)

트래픽 (발음: 트래픽)은 마이크로서비스를 배포하기 위한 무료, 오픈 소스, 현대적이고 빠른 HTTP 리버스 프록시 및 로드 밸런서로, 여러 가지 로드 밸런싱 알고리즘을 지원합니다.

이는 쿠버네티스, 도커, Etcd, Rest API, Mesos/Marathon, Swarm 및 Zookeper와 같은 여러 제공자(또는 서비스 검색 메커니즘 또는 오케스트레이션 도구)와 인터페이스를 할 수 있습니다.

이 lovable한 기능은 구성을 자동적으로 관리하고 동적으로 조정하여 서비스에 적합한 구성을 찾아냅니다. 이를 위해 인프라를 스캔하여 관련 정보를 찾고 어떤 서비스가 외부에서 어떤 요청을 처리하는지를 발견합니다. 제공자들은 트래픽에게 애플리케이션 또는 마이크로서비스의 위치를 알려줍니다.

트래픽의 다른 기능으로는 웹소켓, HTTP/2, GRPC를 지원하고, 핫 리로딩(다시 시작 없이 구성을 계속해서 업데이트), Let’s Encrypt 인증서(와일드카드 인증서 지원)를 사용한 HTTPS, REST API 노출, 접근 로그 보관, 메트릭 제공(Rest, Prometheus, Datadog, Statsd, InfluxDB)이 있습니다.

또한, 트래픽은 간단한 HTML 기반의 웹 사용자 인터페이스를 제공하여 이벤트를 모니터링하는 데 사용되며, 회로 차단기, 재시도 요청, 속도 제한, 기본 인증을 지원합니다.

5. 아파치 트래픽 서버 – (역방향 및 전방 프록시 서버)

야후에서 소유하던 상용 제품이었으나 후에 아파치 재단으로 이관된 아파치 트래픽 서버는 무료, 오픈 소스이며 빠른 캐싱 전방 및 역방 프록시 서버입니다.

트래픽 서버는 로드 밸런서로서 작동하며 유연한 캐시 계층 구조에 참여할 수 있습니다. 야후에서 하루에 400TB 이상의 트래픽을 처리한 것으로 알려져 있습니다.

이는 keep-alive, 필터링, 콘텐츠 요청의 익명화 등의 기능을 갖추고 있으며 HTTP 헤더를 수정하거나 ESI 요청을 처리하거나 새로운 캐시 알고리즘을 설계하기 위해 사용자가 사용자 정의 플러그인을 생성할 수 있는 API를 통해 확장할 수 있습니다.

6. 스쿼드 – (캐싱 및 전방 HTTP 프록시)

스쿼드는 다양한 프로토콜을 지원하는 무료, 오픈 소스이며 잘 알려진 프록시 서버 및 웹 캐시 데몬입니다. HTTP, HTTPS, FTP 등의 프로토콜을 지원하며 들어오는 요청을 캐시하여 나가는 데이터에 대해 역방향 프록시(httpd-accelerator) 모드를 제공합니다.

풍부한 트래픽 최적화 옵션, 액세스 제어, 권한 부여, 로깅 시설 등을 지원합니다.

7. Pound – (역방향 프록시 및 로드 밸런서)

A Pound is another free and open-source, lightweight reverse proxy and load balancer and front-end for web servers. It is also an SSL terminator (that decrypts HTTPS requests from clients and sends them as plain HTTP to the back-end servers).

HTTP/HTTPS 살균기(요청의 정확성을 확인하고 형식이 잘 된 요청만 허용), 그리고 장애 조치 서버.

8. 아파치 – (HTTP 웹 서버)

아파치 HTTP 서버(또한 HTTPD로 알려짐), 전 세계에서 가장 인기 있는 웹 서버로도 배포되고 구성하여 역방향 프록시로 작동할 수 있습니다.

아파치는 클라이언트 요청을 백엔드 서버로 경로 지정하여 보안을 향상시키고 로드 밸런싱하며 웹 애플리케이션 성능을 최적화하는 데 뛰어납니다. 중개 역할을 수행함으로써 아파치는 들어오는 트래픽을 여러 서버 인스턴스로 효율적으로 분배하여 고가용성 및 원활한 사용자 경험을 보장할 수 있습니다. 그 견고하고 사용자 정의 가능한 구성 옵션은 콘텐츠 캐싱이나 응용 프로그램 전달을 위한 신뢰할 수 있는 솔루션을 찾는 조직에게 최상의 선택입니다.

그것의 강력하고 사용자 정의 가능한 구성 옵션 덕분에 역방향 프록시 요구 사항에 대한 신뢰할 수 있는 솔루션을 찾고 있는 기관들에게 최고의 선택이 되었습니다. 콘텐츠 캐싱이든 애플리케이션 전달이든 상관없이 말이죠.

9. Skipper – (HTTP 라우터 및 역방향 프록시)

Skipper는 서비스 구성을 위한 HTTP 라우터 및 역방향 프록시로, 쿠버네티스 인그레스 등의 사용 사례를 포함합니다.

많은 수의 동적으로 구성된 HTTP 경로 정의를 관리하도록 구축되었으며, 800,000개 이상의 경로를 초과하여 복잡한 조회 조건을 특징으로 하며, 필터로 요청 흐름을 확장할 수 있는 유연성을 제공합니다.

이를 그대로 배포하거나 사용자 정의 조회, 필터 로직 및 구성 소스를 통해 확장할 수 있습니다.

10 Caddy 2 – 자동 HTTPS를 포함한 빠른 서버

Caddy 2는 간단함과 다재다능함으로 주목받는 오픈 소스 웹 서버 및 역방향 프록시로, 사용자 친화적인 인터페이스와 기본적으로 자동 HTTPS를 제공하며, 초보자와 경험 많은 사용자 모두에게 접근 가능한 선택지입니다.

Caddy 2는 웹 호스팅, HTTP/2, 로드 밸런싱 및 프록시 처리를 손쉽게 처리하기 위해 설계되었습니다. 웹 사이트의 성능과 보안을 향상시킵니다. 오픈 소스의 성격은 커뮤니티 기여를 촉진하며, 웹 호스팅 및 서버 관리 분야에서의 쉬운 사용과 현대적인 기능으로 인기를 얻었습니다.

결론

이 가이드에서 여러분에게 제공할 정보는 여기까지입니다. 이 목록의 각 도구에 대한 자세한 정보는 해당 웹사이트를 확인하십시오. 아래 피드백 양식을 통해 여러분의 생각을 공유해 주세요.

Source:
https://www.tecmint.com/open-source-reverse-proxy-servers-for-linux/