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 лучших обратных прокси-серверов с открытым исходным кодом, которые можно использовать в системе Linux.
Содержание
1. HAProxy – (TCP/HTTP балансировщик нагрузки)
HAProxy (HAProxy, что означает High Availability Proxy), является бесплатным, открытым источником, очень быстрым, надежным и первоклассным балансировщиком нагрузки и прокси-сервером для TCP- и HTTP-приложений, разработанным для обеспечения высокой доступности.
HAProxy является обратным HTTP-прокси, TCP-прокси и нормализатором, завершателем/инициатором/снимателем SSL/TLS, кэширующим прокси, снятием компрессии HTTP, регулятором трафика, переключателем на основе содержания, шлюзом FastCGI и многим другим. Он также защищает от DDoS-атак и злоупотребления службами.
Он работает на событийном, неблокирующем движке, который сочетает в себе очень быстрый уровень ввода-вывода с приоритетным многопоточным планировщиком, позволяющим ему легко работать с десятками тысяч одновременных соединений.
Примечательно, что HAProxy использует протокол PROXY для передачи информации о соединении клиента на обратные или исходные серверы, чтобы приложение получило всю необходимую информацию.
Некоторые из основных функций HAProxy включают прокси, поддержку SSL, мониторинг состояния серверов и их состояние, высокую доступность, балансировку нагрузки, сохранение клиента на том же сервере даже при различных событиях, переключение контента, перезапись и перенаправление HTTP, защиту сервера, ведение журнала, статистику и многое другое.
2. NGINX – (HTTP и обратный прокси-сервер)
NGINX – бесплатный, открытый источник, высокопроизводительный и очень популярный HTTP-сервер и обратный прокси. Он также функционирует как IMAP/POP3 прокси-сервер. NGINX хорошо известен своей высокой производительностью, стабильностью, богатым набором функций, простой и гибкой настройкой, а также низким потреблением ресурсов (особенно небольшим объемом памяти).
Как и HAProxy, NGINX имеет архитектуру, основанную на событиях, поэтому у него нет проблем с обработкой десятков тысяч одновременных подключений, так как он использует протокол HAProxy PROXY.
NGINX поддерживает ускоренное обратное прокси с кэшированием с использованием модуля ngx_http_proxy_module, который позволяет передавать запросы на другой сервер через протоколы, отличные от HTTP, такие как FastCGI, uwsgi, SCGI и Memcached.
Важно, что он поддерживает балансировку нагрузки и отказоустойчивость, которые являются важными аспектами систем распределенных вычислений большого масштаба. Модуль ngx_http_upstream_module позволяет определять группы бэкенд-серверов для распределения запросов, поступающих от клиентов.
Это делает ваши приложения более надежными, доступными и надежными, высокомасштабируемыми, с временем отклика и пропускной способностью. Кроме того, что касается безопасности, он поддерживает завершение SSL/TLS и множество других функций безопасности.
Полезные статьи о веб-сервере Nginx, которые вам могут понравиться:
3. Varnish – (Обратный кэширующий прокси)
Кэш HTTP Varnish (или Кэш Varnish или просто Varnish) – бесплатное, открытое, высокопроизводительное и очень популярное программное обеспечение для кэширования обратного прокси, лучше известное как ускоритель веб-приложений, разработанное для улучшения производительности HTTP с использованием кэширования на стороне сервера.
Оно развертывается между клиентом и HTTP веб-сервером или сервером приложений; каждый раз, когда клиент запрашивает информацию или ресурс с веб-сервера, Varnish сохраняет копию информации, поэтому при следующем запросе клиента на ту же информацию Varnish будет ее обслуживать, не отправляя запрос на веб-сервер, тем самым уменьшая нагрузку на сервер и, следовательно, ускоряя доставку веб-контента.
Varnish использует гибкий язык конфигурации, известный как Язык конфигурации Varnish (VLC), который, среди прочего, позволяет системным администраторам настраивать обработку входящих запросов, определять, какой контент должен быть обслужен и откуда, и как запрос или ответ должен быть изменен, а также многое другое.
Лак также расширяем – его можно расширять, используя Модули Varnish (VMODs), и пользователи могут писать свои собственные модули или использовать модули, предоставленные сообществом.
Основным ограничением Varnish является его отсутствие поддержки SSL/TLS. Единственный способ включить поддержку HTTPS – развернуть терминатор или отклонитель SSL/TLS, такой как HAProxy или NGINX перед ним.
4. Træfɪk – (Облачный прокси для приложений, созданных в облаке)
Træfɪk (произносится Traffic) – это бесплатный, открытый и современный 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 – (Обратный и Прямой Прокси-сервер)
Ранее коммерческий продукт, принадлежащий Yahoo, который позже был передан Фонду Apache, Apache Traffic Server является бесплатным, открытым и быстрым кеширующим прокси-сервером, работающим в прямом и обратном направлениях.
Трафик-сервер также работает в качестве балансировщика нагрузки и может участвовать в гибких иерархиях кэша. Известно, что он обрабатывал более 400 ТБ трафика в день в Yahoo.
Он предлагает набор функций для сохранения соединения, фильтрации или анонимизации запросов контента, а также расширяем через API, который позволяет пользователям создавать пользовательские плагины для изменения HTTP-заголовков, обработки запросов ESI или разработки новых алгоритмов кэширования.
6. Squid – (Кеширующий и Прокси-сервер для Пересылки HTTP)
Squid является бесплатным, открытым и широко известным прокси-сервером и демоном веб-кэша, поддерживающим различные протоколы, такие как HTTP, HTTPS, FTP и многое другое. Он имеет режим обратного прокси (ускоритель httpd), который кэширует входящие запросы для исходящих данных.
Он поддерживает разнообразные опции оптимизации трафика, управления доступом, авторизации, средства ведения журнала и многое другое.
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. Apache – (HTTP веб-сервер)
HTTP-сервер Apache (также известный как HTTPD), самый популярный веб-сервер на планете, также может быть развернут и настроен для работы в качестве обратного прокси.
Apache отличается в направлении клиентских запросов на серверы, улучшении безопасности, балансировке нагрузки и оптимизации производительности веб-приложений. Действуя как посредник, Apache эффективно распределяет входящий трафик на несколько экземпляров серверов, обеспечивая высокую доступность и безупречный пользовательский опыт.
Его мощные и настраиваемые конфигурационные опции делают его лучшим выбором для организаций, ищущих надежный вариант для решения задач обратного прокси, будь то кэширование контента или доставка приложений.
9. Skipper – (HTTP Router and Reverse Proxy)
Skipper – это бесплатный и открытый исходный код HTTP-маршрутизатор и обратный прокси для композиции сервисов, включая такие варианты использования, как Kubernetes Ingress.
Он создан для управления значительным количеством динамически настроенных определений маршрутов HTTP, превышающих 800 000 маршрутов, с использованием сложных условий поиска и предоставляя гибкость для улучшения потока запросов с помощью фильтров.
Он может быть легко развернут как есть или может быть расширен за счет включения собственного поиска, логики фильтров и источников конфигурации.
10 Caddy 2 – Быстрый сервер с автоматическим HTTPS
Caddy 2 – это открытый исходный веб-сервер и обратный прокси, известный своей простотой и универсальностью, который предлагает удобный интерфейс и автоматическое HTTPS по умолчанию, что делает его доступным выбором как для новичков, так и для опытных пользователей.
Кэдди 2 разработан для легкой обработки веб-хостинга, HTTP/2, балансировки нагрузки и прокси, повышая производительность и безопасность веб-сайтов. Его открытый исходный код способствует вкладам сообщества, и он стал популярным благодаря своей простоте использования и современным функциям в мире веб-хостинга и управления сервером.
Заключение
Это всё, что у нас есть для вас в этом руководстве. Для получения дополнительной информации о каждом инструменте в этом списке посетите их соответствующие веб-сайты. Не забудьте поделиться своими мыслями с нами через форму обратной связи ниже.
Source:
https://www.tecmint.com/open-source-reverse-proxy-servers-for-linux/