Найкращі сервери зворотного проксі для Linux

Зворотний проксі-сервер – це тип проксі-сервера, який встановлюється між клієнтами та внутрішніми/внутрішніми серверами, наприклад, HTTP-сервером, таким як NGINX, Apache тощо, або серверами застосунків, написаними на Nodejs, Python, Java, Ruby, PHP та багатьох інших мовах програмування.

Це шлюз або сервер-посередник, який приймає запит клієнта, передає його одному або декільком внутрішнім серверам, а потім отримує від них відповідь і повертає її клієнту, створюючи враження, що контент отримано від самого зворотного проксі-сервера.

Зазвичай зворотний проксі-сервер – це внутрішній проксі-сервер, який використовується як “зовнішній” для контролю і захисту доступу до внутрішніх серверів у приватній мережі: зазвичай він розміщується за мережевим брандмауером.

Він допомагає внутрішнім серверам досягти анонімності для підвищення їхньої безпеки. В ІТ-інфраструктурі зворотний проксі може також виконувати функції міжмережевого екрана застосунків, балансувальника навантаження, термінатора TLS, веб-прискорювача (завдяки кешуванню статичного і динамічного вмісту) і багато іншого.

У цій статті ми розглянемо 10 найкращих зворотних проксі-серверів з відкритим вихідним кодом, які можна використовувати в системі Linux.

1. HAProxy – ((TCP/HTTP Load Balancer))

HAProxy (HAProxy, що розшифровується як High Availability Proxy) – це безплатний, з відкритим вихідним кодом, дуже швидкий, надійний і висококласний балансувальник навантаження і проксі-сервер для TCP- і HTTP-додатків, створений для забезпечення високої доступності.

HAProxy – це зворотний HTTP-проксі, TCP-проксі та нормалізатор, термінатор/ініціатор/вивантажувач SSL/TLS, кешувальний проксі, вивантажувач стиснення HTTP, регулятор трафіку, контент-орієнтований комутатор, FastCGI-шлюз і багато іншого. Це також захист від DDoS і зловживань сервісами.

В основі HAProxy лежить подієво-орієнтований неблокувальний механізм, що поєднує в собі дуже швидкий рівень введення-виведення і багатопотоковий планувальник, заснований на пріоритетах, що дає йому змогу легко справлятися з десятками тисяч одночасних з’єднань.

Примітно, що HAProxy використовує протокол PROXY для передавання інформації про підключення клієнта до внутрішніх або вихідних серверів, щоб застосунок отримував усю необхідну інформацію.

Серед основних можливостей HAProxy – проксування, підтримка SSL, моніторинг стану серверів та їхнього стану, висока доступність, балансування навантаження, “липкість” (збереження відвідувача на одному й тому самому сервері навіть у разі різних подій), перемикання контенту, переписування та перенаправлення HTTP, захист сервера, ведення журналу, статистика та багато іншого.

2. NGINX – (HTTP и Reverse Proxy Web Server)

NGINX – це безкоштовний, високопродуктивний і дуже популярний HTTP-сервер і зворотний проксі-сервер із відкритим вихідним кодом. Він також функціонує як проксі-сервер IMAP/POP3. NGINX відомий своєю високою продуктивністю, стабільністю, багатим набором функцій, простотою і гнучкістю налаштування, а також низьким споживанням ресурсів (особливо малим обсягом займаної пам’яті).

Як і HAProxy, NGINX має подієво-орієнтовану архітектуру, тому він без проблем справляється з десятками тисяч одночасних з’єднань, оскільки використовує протокол PROXY від HAProxy.

NGINX підтримує прискорене зворотне проксування з кешуванням за допомогою модуля ngx_http_proxy_module, який дає змогу передавати запити на інший сервер за протоколами, відмінними від HTTP, як-от FastCGI, uwsgi, SCGI та Memcached.

Важливо відзначити, що він підтримує балансування навантаження і відмовостійкість, які є життєво важливими аспектами великих розподілених обчислювальних систем. Модуль ngx_http_upstream_module дає змогу визначати групи внутрішніх серверів для розподілу запитів, що надходять від клієнтів.

Це робить ваші додатки надійнішими, доступнішими і надійнішими, високомасштабованими, з великим часом відгуку і пропускною спроможністю. Крім того, що стосується безпеки, він підтримує завершення SSL/TLS і багато інших функцій безпеки.

3. Varnish – ( Reverse Caching Proxy )

Varnish HTTP Cache (або Varnish Cache, або просто Varnish) – це безкоштовний, високопродуктивний і дуже популярний кешуючий зворотний проксі-сервер, більш відомий як прискорювач веб-додатків, призначений для підвищення продуктивності HTTP за допомогою кешування на стороні сервера.

Його встановлюють між клієнтом і HTTP-веб-сервером або сервером застосунків; щоразу, коли клієнт запитує інформацію або ресурс у веб-сервера, Varnish зберігає копію цієї інформації, тому наступного разу, коли клієнт запитає ту саму інформацію, Varnish надасть її без надсилання запиту веб-серверу, що зменшить навантаження на сервер і, відповідно, прискорить доставку веб-контенту.

Varnish використовує гнучку мову конфігурації, відому як Varnish Configuration Language (VLC), яка, окрім іншого, дає змогу системним адміністраторам налаштовувати, як мають оброблятися вхідні запити, який вміст і звідки мають обслуговувати, як мають змінюватись запит або відповідь, і багато іншого.

Varnish також є розширюваним – його можна розширити за допомогою модулів Varnish Modules (VMODs), і користувачі можуть писати свої власні модулі або використовувати модулі, надані спільнотою.

Основним обмеженням Varnish є відсутність підтримки SSL/TLS. Єдиний спосіб увімкнути HTTPS – встановити перед ним термінатор SSL/TLS або вивантажувач, наприклад HAProxy або NGINX.

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

Træfɪk (вимовляється як “Трафік”) – це безкоштовний, сучасний і швидкий зворотний HTTP-проксі та балансувальник навантаження для розгортання мікросервісів з відкритим вихідним кодом, що підтримує кілька алгоритмів балансування навантаження.

Він може взаємодіяти з різними провайдерами (або механізмами виявлення сервісів, або інструментами оркестровки), такими як Kubernetes, Docker, Etcd, Rest API, Mesos/Marathon, Swarm і Zookeper.

Його відмітною особливістю є можливість автоматичного і динамічного управління конфігурацією, що дає змогу знаходити потрібну конфігурацію для ваших сервісів. Для цього вона сканує інфраструктуру в пошуках необхідної інформації та визначає, який сервіс обслуговує той чи інший запит із зовнішнього світу. Провайдери повідомляють Træfɪk, де розташовані ваші додатки або мікросервіси.

Серед інших можливостей Træfɪk – підтримка WebSockets, HTTP/2 і GRPC, гаряче перезавантаження (постійне оновлення конфігурації без перезапуску), HTTPS з використанням сертифікатів Let’s Encrypt (підтримка wildcard-сертифікатів), а також підтримка REST API. Також ведеться журнал доступу, надаються метрики (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Крім того, Træfɪk постачається з простим користувацьким веб-інтерфейсом на основі HTML, який використовується для відстеження подій. Також підтримуються автоматичні вимикачі, повторні запити, обмеження швидкості та базова аутентифікація.

5. Apache Traffic Server – ( Reverse and Forward Proxy Server)

Apache Traffic Server – це безкоштовний, з відкритим вихідним кодом і швидким кешуванням прямий і зворотний проксі-сервер, який раніше був комерційним продуктом компанії Yahoo, а потім переданий до фонду Apache Foundation.

Traffic Server також працює як балансувальник навантаження і може брати участь у гнучких ієрархіях кешу. Відомо, що в компанії Yahoo він обробляв понад 400 ТБ трафіку на день.

Він має набір функцій keep-alive, фільтрації або анонімізації запитів до контенту і розширюється за допомогою API, що дає змогу користувачам створювати користувацькі плагіни для модифікації HTTP-заголовків, обробки ESI-запитів або розробки нових алгоритмів кешування.

6. Squid – ( Caching and Forwarding HTTP Proxy)

Squid – це безкоштовний, відомий проксі-сервер і демон Web-кешу з відкритим вихідним кодом, що підтримує різні протоколи, такі як HTTP, HTTPS, FTP та інші. У ньому реалізовано режим зворотного проксі (httpd-accelerator), який кешує вхідні запити на вихідні дані.

Підтримуються широкі можливості оптимізації трафіку, управління доступом, авторизації, протоколювання та багато іншого.

7. Pound – ( Reverse Proxy и Load Balancer)

Pound – це ще один безкоштовний і відкритий проксі-сервер із легким зворотним проксі та балансувальником навантаження, а також зовнішній сервер для веб-серверів. Він також є SSL-термінатором (розшифровує HTTPS-запити від клієнтів і відправляє їх у вигляді звичайного HTTP на внутрішні сервери).

HTTP/HTTPS sanitizer (перевіряє коректність запитів і приймає тільки правильно сформовані), а також відмовостійкий сервер.

8. Apache – (HTTP Web Server)

HTTP-сервер Apache (також відомий як HTTPD), найпопулярніший веб-сервер у світі, також може бути розгорнутий і налаштований на роботу як зворотний проксі.

Apache чудово справляється з маршрутизацією клієнтських запитів до внутрішніх серверів, підвищує безпеку, балансує навантаження й оптимізує роботу веб-додатків. Виступаючи в ролі посередника, Apache може ефективно розподіляти вхідний трафік між кількома екземплярами серверів, забезпечуючи високу доступність і безперебійну роботу користувачів.

Завдяки широким можливостям налаштування Apache є найкращим вибором для організацій, які шукають надійне рішення для зворотного проксі, чи то кешування контенту, чи то доставка додатків.

9. Skipper – ( HTTP Router and Reverse Proxy)

Skipper – це безкоштовний HTTP-маршрутизатор з відкритим вихідним кодом і зворотний проксі для композиції сервісів, включно з такими варіантами використання, як Kubernetes Ingress.

Він створений для управління значним числом динамічно конфігурованих визначень HTTP-маршрутів, що перевищують 800 000 маршрутів, має складні умови пошуку і забезпечує гнучке налаштування потоку запитів за допомогою фільтрів.

Він може бути розгорнутий як у вихідному вигляді, так і розширений за рахунок включення користувацької логіки пошуку, фільтрів і джерел конфігурації.

10. Caddy 2 – Fast Server with Automatic HTTPS

Caddy 2 – це веб-сервер і зворотний проксі з відкритим вихідним кодом, відомий своєю простотою й універсальністю. Він має зручний інтерфейс і автоматичний HTTPS за замовчуванням, що робить його доступним як для новачків, так і для досвідчених користувачів.

Caddy 2 призначений для управління хостингом, HTTP/2, балансуванням навантаження і проксуванням, підвищуючи продуктивність і безпеку сайтів. Завдяки простоті використання та сучасним можливостям Caddy 2 завоював популярність у світі хостингу та керування серверами.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x