Введение
Немного расскажу своими словами о том, как работает модуль ngx_http_proxy_module. Именно он реализует весь функционал, о котором пойдет речь. Допустим, у вас в локальной или виртуальной сети есть какие-то сервисы, не имеющие прямого доступа из интернета. А вы хотите таковой иметь. Можно пробрасывать нужные порты на шлюзе, можно что-то еще придумывать. А можно сделать проще всего — настроить единую точку входа на все свои сервисы в виде nginx сервера и с него проксировать различные запросы к нужным серверам.
Расскажу на конкретных примерах, где я это использую. Для наглядности и простоты буду прям по порядку перечислять эти варианты:
- Ранее я рассказывал о настройке чат серверов — matrix и mattermost. В этих статьях я как раз рассказывал о том, как проксировать запросы в чат с помощью nginx. Прошелся по теме вскользь, не останавливаясь подробно. Суть в том, что вы настраиваете на любом виртуальном сервере эти чаты, помещаете их в закрытые периметры сети без лишних доступов и просто проксируете запросы на эти сервера. Они идут через nginx, который у вас смотрит во внешний интернет и принимает все входящие соединения.
- Допустим, у вас есть большой сервер с множеством контейнеров, например докера. На нем работает множество различных сервисов. Вы устанавливаете еще один контейнер с чистым nginx, на нем настраиваете проксирование запросов на эти контейнеры. Сами контейнеры мапите только к локальному интерфейсу сервера. Таким образом, они будут полностью закрыты извне, и при этом вы можете гибко управлять доступом.
- Еще один популярный пример. Допустим, у вас есть сервер с гипервизором proxmox или любым другим. Вы настраиваете на одной из виртуальных машин шлюз, создаете локальную сеть только из виртуальных машин без доступа в нее извне. Делаете в этой локальной сети для всех виртуальных машин шлюз по-умолчанию в виде вашей виртуальной машины со шлюзом. На виртуальных серверах в локальной сети размещаете различные сервисы и не заморачиваетесь с настройками фаервола на них. Вся их сеть все равно не доступна из интернета. А доступ к сервисам проксируете с помощью nginx, установленным на шлюз или на отдельной виртуальной машине с проброшенными на нее портами.
- Мой личный пример. У меня дома есть сервер synology. Я хочу организовать к нему простой доступ по https из браузера по доменному имени. Нет ничего проще. Настраиваю на сервере nginx получение бесплатного сертификата , настраиваю проксирование запросов на мой домашний ip, там на шлюзе делаю проброс внутрь локалки на synology сервер. При этом я могу фаерволом ограничить доступ к серверу только одним ip, на котором работает nginx. В итоге на самом synology вообще ничего не надо делать. Он и знать не знает, что к нему заходят по https, по стандартному порту 443.
- Допустим, у вас большой проект, разбитый на составные части, которые живут на разных серверах. К примеру, на отдельном сервере живет форум, по пути /forum от основного домена. Вы просто берете и настраиваете проксирование всех запросов по адресу /forum на отдельный сервер. Точно так же можно без проблем все картинки перенести на другой сервер и проксировать к ним запросы. То есть вы можете создать любой location и переадресовывать запросы к нему на другие сервера.
Надеюсь в общем и целом понятно, о чем идет речь. Вариантов использования много. Я привел самые распространенные, которые пришли в голову и которые использую сам. Из плюсов, которые считаю наиболее полезными именно из своих кейсов, отмечу 2:
- Без проблем можете настроить https доступ к сервисам, при этом совершенно не трогая эти сервисы. Вы получаете и используете сертификаты на nginx сервере, используете https соединение с ним, а сам nginx уже передает информацию на сервера со службами, которые могут работать по обычному http и знать не знают о https.
- Вы очень легко можете менять адреса, куда проксируете запросы. Допустим у вас есть сайт, его запросы проксируются на отдельный сервер. Вы подготовили обновление или переезд сайта. Отладили все на новом сервере. Теперь вам достаточно на сервере nginx изменить адрес старого сервера на новый, куда будут перенаправляться запросы. И все. Если что-то пойдет не так, можете оперативно вернуть все обратно.
С теорией закончил. Перейдем теперь к примерам настройки. В своих примерах я буду использовать следующие обозначения:
blog.zeroxzed.ru | доменное имя тестового сайта |
nginx_srv | имя внешнего сервера с установленным nginx |
blog_srv | локальный сервер с сайтом, куда проксируем соединения |
94.142.141.246 | внешний ip nginx_srv |
192.168.13.31 | ip адрес blog_srv |
77.37.224.139 | ip адрес клиента, с которого я буду заходить на сайт |
Введение
Обратный прокси-сервер – это тип прокси-сервера, который ретранслирует HTTP/HTPPS-запросы на один или несколько бэкенд-серверов. Обратные прокси-серверы полезны, так как многие современные веб-приложения для обработки HTTP-запросов используют бэкенд-серверы приложений (к которым пользователи не должны иметь доступ напрямую), а также часто поддерживают только базовые функции HTTP.
Поэтому вы можете использовать обратный прокси-сервер для того, чтобы предупредить возможность пользователям получить прямой доступ к основным серверам приложений. Также использование обратного прокси-сервера поможет вам перераспределить нагрузку от поступающих запросов на несколько других серверов приложений. Благодаря этому улучшится производительность и увеличится отказоустойчивость.
Из этой статьи вы узнаете о том, как настроить Apache для использования в качестве обратного прокси-сервера при помощи mod_proxy – модуля Apache для перенаправления соединений на один или несколько бэкенд-серверов в этой же сети. В этом руководстве используется простой бэкенд, написанный с использованием фреймворка Flask, но вы можете использовать любой бэкенд на ваше усмотрение.
Для чего нужны прокси?
Краткий раздел для тех, кто еще не знает для чего ему нужны прокси.
Т.е. прокси создает поверх вашей сети еще одну «оболочку», через которую ваш компьютер и пытается обращаться в сеть. В минимальном понимании происходит просто подмена внешнего IP адрес – и это далеко не обозначает применение в каких-то злодейских махинация:
- Ваш IP мог быть случайно забанен – прокси подменит новый IP, вы спокойно сможете посещать ваши любимые сайты.
- На Ютубе некоторые пользователи ограничивают показ видео на определенные страны. Но нам-то никто не запрещает подменить IP под нужную страну?
- Прочие обходы блокировок, совместное пользование сервисами, свои сети, зарубежные покупки и т.д.
Где достать прокси?
Вариантов достать прокси очень много – есть бесплатные, есть платные. Причем качество сервера и количество его пользователей дает очень сильный разброс цен. Видов их тоже много:
- Обычные публичные – как правило бесплатны.
- Пакеты публичных – стоят копейки.
- Пакеты полуприватных – доступны всем, но в публичных листах не светятся, чуть дороже.
- Индивидуальные прокси или попиленные на несколько человек – продаются по одному, ценник от 1$.
- Прочие модные прокси для отдельных задач – вроде мобильных или резидентных.
Сервисов очень много, но периодически выходят и новые. Лично мне нравилось пользоваться с среди индивидуальных пакетов проксями от Proxy-Sale и Proxy6. Для остального просто впихивайте в поиск свои запросы и получайте актуальные сервисы:
- прокси купить
- бесплатные прокси
2. Настройки прокси
Откройте «Параметры» > «Сеть и Интернет» > «Прокси-сервер» > справа отключите «Использовать прокси-сервер», если он был включен.
Подключение к Интернету через прокси сервер и проверка такого подключения
Определить, насколько удобным будет выбранный прокси сервер, невозможно без его подключения и практических испытаний. Так, собираясь подключить Proxy сервер, следует выполнить следующие шаги:
- замерять текущую скорость Интернет;
- выбрать Proxy сервер, который планируется установить и использовать;
- провести настройку прокси и подключить его;
- провести замер скорости с использованием подключенного Proxy.
Каким образом можно проверить Интернет и проверить настройки прокси сервера? Выполняя первый этап предложенной инструкции, следует обратить внимание на следующие значения:
самым важным является входящая и исходящая скорость интернет соединения;
стоит обратить внимание на пинг;
необходимо узнать текущий ip адрес.
Скорость входящего и исходящего Интернета напрямую влияет на скорость загрузки данных с сайта, или временя, которое предстоит потратить на скачивание контента с узлов.
Пинг при подключении через прокси сервер является крайне важным значением, с помощью которого можно определить, как быстро сервер будет получать запросы от пользователя и отвечать на них. Чем меньше – тем лучше.
Пример: Оптимальным пингом можно назвать цифру в 30 — 50 мс (его хватает даже для современных сетевых игр, требующих хорошей реакции).
Наконец, последний пункт – это ip адрес. Следует запомнить или записать действующее значение.
Отключение прокси-сервера в операционной системе
Часто для устранения ошибки достаточно отключить прокси. Это выполняется в настройках ОС. Далее будут приведены инструкции для последних операционных систем от компании «Майкрософт».
Проверка параметров интернет-подключения
Отсутствие Интернета может быть связано с некорректными настройками, к примеру, неверно работает получение IP-адресов. Если ваш провайдер предлагает статический IP, то его необходимо установить в настройках. Иначе активируйте автоматическое получение IP и DNS. Сделать это можно по следующей методике:
- Зайдите в «Центр управления сетями».
- Клацните по строке «Изменение параметров адаптера».
- Перейдите в «Свойства» адаптера, который используется для доступа в Интернет.
- В списке нажмите один раз по строке IPV4 и далее на кнопку «Свойства».
- Установите активным пункт «Автоматическое подключение» или наоборот, введите IP вручную.
После этого перезагрузите компьютер и проверьте работоспособность сети.
Проверка реестра
Рекомендуется проверить параметр Appinit_DLLs в реестре. Он может быть ответственен за появление ошибки прокси-сервера. Чтобы проверить его, откройте строку «Выполнить», а затем введите слово-команду regedit. В самом реестре перейдите по следующему пути:
Если в параметре Appinit_DLLs стоит ссылка или другой текст, удалите его, чтобы там была пустая строка, как это показано на изображении.
Шаг 3: изменение изначальных установок для включения прокси
В этой части необходимо внести изменения для того, чтобы изначальный виртуальный хост Apache выполнял роль обратного прокси-сервера для одного или нескольких бэкенд-серверов.
Сначала нужно открыть конфигурационный файл Apache в редакторе nano (или в другом редакторе на ваш выбор):
Внутри этого файла найдите блок с первой строкой . Первый пример ниже продемонстрирует, как изменить этот файл так, чтобы использовать обратный прокси для одного бэкенд-сервера, а второй пример – для установки балансировки нагрузки для нескольких бэкенд-серверов.
1 пример: обратное прокси для одного бэкенд-сервера
Скопируйте текст ниже вместо всего текста, расположенного в блоке VirtualHost, то есть чтобы в итоге блок выглядел вот так:
Если вы продолжаете следовать этому руководству и используете тестовые серверы, которые создали ранее, то скопируйте 127.0.0.1:8080, как и написано в примере. Если у вас есть свои собственные серверы приложений, то используйте их адреса.
В блоке используется три директивы:
- ProxyPreserveHost – заставляет Apache передать оригинальный заголовок Host бэкенд-серверу. Это полезно, так как в этом случае бэкенд-сервер получает адрес, который используется для доступа к приложению;
- ProxyPass – основная директива для настройки прокси. В данном случае она указывает, что все, что идет после корневого адреса URL (/), должно быть отправлено на бэкенд-сервер по указанному адресу. Например, если Apache получит запрос /primer, то он подключится к http://ваш_бэкенд-сервер/primer и отправит соответствующий ответ;
- ProxyPassReverse – должна иметь такие же настройки, как и ProxyPass. Она сообщает Apache, как изменить заголовки в ответе от бэкенд-сервера. Таким образом гарантируется, что браузер клиента будет перенаправлен на прокси-адрес, а не на адрес бэкенд-сервера.
После внесения изменений Apache необходимо перезапустить:
Теперь, если вы наберете в браузере адрес своего сервера, вы увидите ответ от вашего бэкенд-сервера вместо приветственной страницы Apache.
2 пример: балансировка нагрузки между несколькими бэкенд-серверами
Если у вас есть несколько бэкенд-серверов, будет хорошей идеей при использовании прокси распределить трафик между ними; сделать это можно при помощи функции балансировки нагрузки утилиты mod_proxy.
Как и в первом примере, тут вам тоже необходимо заменить текст в блоке VirtualHost на следующий:
В целом текст похож на предыдущий, однако вместо указания одного бэкенд-сервера появляется новый блок Proxy, в котором указано несколько серверов. Блок называется balancer://mycluster (название можно изменить) и состоит из одного или нескольких BalancerMembers, которые определяют адреса лежащих в основе бэкенд-серверов.
Директивы ProxyPass и ProxyPassReverse используют пул балансировки нагрузки под названием mycluster вместо конкретного сервера.
Вы можете использовать адреса тестовых серверов (как указано выше), либо заменить их на адреса своих серверов.
Для того, чтобы изменения вступили в силу, перезапустите Apache:
Теперь проведите такой же тест, как и в первом примере: введите IP-адрес вашего сервера в браузер и вместо стандартного приветствия Apache вы увидите один из ответов бэкенд-серверов. Если вы используете тестовые серверы, то это будет либо “Hello world!”, либо “Hello Timeweb!”. Обновите страницу несколько раз и, если вы увидели оба текста, значит все работает корректно.
Настройка подключения к прокси-серверу
Есть много способов настройки прокси на разных устройствах и в разных браузерах. Подключение IP-адреса в каждом браузере, компьютере и телефоне имеет свои нюансы, но механизм везде один и тот же.
Для браузера
Айпи-адреса добавляются в каждый браузер: Mozilla Firefox, Google Chrome, Opera, Safari. Это делается двумя способами.
Расширение
Настройка в прокси в браузере с помощью расширения – самый простой способ. Нужно только выбрать плагин, установить его, внести в него данные IP-адреса. Далее айпи подключается/отключается в один клик: нажимаете “Подключить” или “Отключить” – и готово. Если у вас несколько адресов, то переключиться между ними просто: достаточно кликнуть на нужный IP.
В настройках
Этот способ требует больше времени:
- Открываем настройки браузера.
- Находим “Дополнительно” или “Продвинутые настройки” – везде этот пункт называется по-разному. В некоторых браузерах нужно найти пункт “Параметры сети” и нажать “Настроить”, как в Firefox, например.
- Вводим данные IP-адреса.
- Сохраняем настройки.
Иногда этот метод не работает: подключил айпи, перезапускаешь браузер – и ничего не происходит. Поэтому лучше настраивать прокси с помощью плагинов.
Для компьютера
Промежуточные серверы для компьютера настраиваются в системе ОС. Но не все операционные системы поддерживают прокси с логином и паролем. Например, никакая версия Windows не даст добавить защищённый айпи: вы просто не найдёте в настройках поля для логина и пароля. Поэтому лучше поступить так:
Подключить прокси непосредственно в программе, в которой работаете.
Например, если хотите зайти в Telegram через промежуточный сервер, подключите адрес прямо в мессенджере.
Добавить IP в браузере.
Как это сделать, мы написали выше.
Подключить промежуточный сервер через специальный софт.
Некоторые программы не поддерживают использование прокси. Из-за этого нужно настраивать IP через стороннюю утилиту, например Proxifier, ProxyCap или SocksCap. В зависимости от задач такие программы бывают платные и бесплатные. Чтобы обойти гоеблокировку, достаточно бесплатного софта.
Для телефона
Айпи добавляется в настройках смартфона или через специальное приложение.
В настройках
На Android и iPhone алгоритм один и тот же. Отличия минимальные. Делаем следующее:
- Открываем “Настройки”.
- Заходим в пункт “Подключения”.
- Открываем настройки текущей сети.
- Нажимаем “Дополнительно”.
- Выбираем тип айпи-адреса.
- Вписываем данные IP. Сохраняем.
Но не все телефоны поддерживают все типы адресов. Например, на Android нельзя использовать прокси протокола Socks5. Он настраивается через программу. О ней ниже.
Через специальное приложение
Для настройки прокси на “Андроиде” скачайте Drony. Программа бесплатная. В приложении есть журнал, который показывает, где используется айпи-адрес и его статус – работает или нет.
Есть ещё программа ProxyDroid, но для её работы нужны root-права. В случае с Drony рут-права не требуются.
Настройка Apache для работы прокси
Мы не будем подробно рассматривать как настроить Apache в вашей системе, все это уже описано в статье настройка Apache, сегодня же мы остановимся на настройках, необходимых для работы прокси.
Мы будем использовать Apache с интерпретатором PHP, установленным в виде модуля php-fpm. Это обеспечит лучшую общую производительность системы. Сначала установим все нужные пакеты:
Поскольку нам нужно, чтобы Apache работал на порту 8080 нужно изменить конфигурационные файлы веб-сервера:
Замените значение строки Listen с 80 на 8080, затем сохраните изменения в файле. Далее изменим порт для веб-сайта по умолчанию:
Точно так же замените значение порта с 80 на 8080. Затем сохраните изменения и перезапустите веб-сервер:
Теперь вы можете проверить на каком порту будет ожидать соединений Apache, если все было сделано правильно, то это будет 8080:
Чтобы показать настройку прокси Nginx более наглядно, создадим один виртуальный хост (домен). Сначала создадим каталог для нашего хоста:
Затем файлы index.html и phpinfo.php:
Затем настроим файлы конфигурации виртуальных хостов для каждого из доменов:
Обратите внимание на порт, тут тоже нужно указать 8080. Для тестирования работы php нам понадобится скрипт с вызовом функции:. Осталось включить конфигурацию для только что созданного сайта и перезапустить веб-сервер:
Осталось включить конфигурацию для только что созданного сайта и перезапустить веб-сервер:
Типы балансировки нагрузки
Теперь рассмотрим базовые типы балансировки нагрузки.
Среда без балансировки нагрузки
Среда простого приложения без балансировки нагрузки выглядит так:
То есть пользователь подключается непосредственно к веб-серверу (к вашему домену, yourdomain.com). И если этот единственный веб-сервер прекращает работу, пользователь не сможет попасть на сайт. Кроме того, если множество пользователей одновременно попытается открыть сайт, сервер может попросту не справиться с нагрузкой: сайт будет загружаться очень медленно или же пользователь вовсе не сможет открыть его.
Балансировка нагрузки на уровне 4
Самый простой способ балансировки нагрузки сетевого трафика между несколькими серверами – это балансировка на уровне 4 (также он называется транспортным уровнем).
Такая балансировка будет распределять трафик на основе диапазонов IP-адресов и портов. К примеру, если запрос поступает от http://yourdomain.com/anything, трафик будет отправлен на бэкэнд, который отвечает за поддержку yourdomain.com на порте 80.
Вот общая схема балансировки нагрузки на транспортном уровне:
В таком случае каждый запрос сначала попадает к балансировщику, который направляет его к одному из серверов бэкэнда; этот сервер, в свою очередь, отвечает на запрос пользователя и передаёт ему результат. Как правило, все серверы бэкэнда обслуживают одинаковый контент: в противном случае пользователь может получить непоследовательное или нецелостное отображение
Обратите внимание, что оба веб-серверы подключены к одному серверу баз данных
Балансировка нагрузки на уровне 7
Другой, более сложный метод настройки балансировки нагрузки – это балансировка на уровне 7 (уровень приложения). В таком случае балансировщик распределяет запросы между серверами бэкэнда на основе содержания запроса пользователя. Этот режим балансировки нагрузки позволяет запускать несколько серверов приложений на одном домене или порте.
Общая схема балансировки нагрузки на уровне приложения имеет такой вид:
В данном случае если пользователь запрашивает yourdomain.com/blog, он будет направлен на веб-сервер 2. Остальные запросы передаются на бэкэнд, который может обслуживать другое приложение. В данном случае оба бэкэнда используют один и тот же сервер базы данных.
Настройка фронтэнда может выглядеть так:
Это настроит фронтэнд http, который поддерживает входящий трафик на порте 80.
- acl url_blog path_beg /blog соответствует запросам, которые начинаются с /blog.
- use_backend blog-backend if url_blog использует ACL для проксирования трафика на серверы blog-backend.
- default_backend web-backend обслуживает остальной трафик, который будет отправлен на web-backend.
5. Включите заголовок X-Forwarded-For
Это необязательный шаг, который гарантирует, что исходный IP-адрес (т.е. пользователь, подключающийся к прокси-серверу) отправляется в приложение Atlassian, а не через прокси-IP. Это полезно для отслеживания того, кто отправляет запросы, так как в противном случае обратный прокси-сервер может маскировать свой IP-адрес. Если это изменение будет выполнено, журналы доступа будут записывать IP-адрес клиента, а также прокси-сервер, а не только прокси-сервер. Для этого:
- Включить модуль mod_remoteip.
- Добавьте ниже соответствующий виртуальный хост:
- Перезапустите / перезагрузите Apache.
Шаг 2: создание тестовых бэкенд-серверов
Запуск нескольких базовых бэкенд-серверов – отличная возможность протестировать, корректно ли работает Apache. Поэтому необходимо создать два сервера, которые будут отвечать на HTTP-запросы, печатая строку текста. Один будет отвечать “Hello world!”, другой “ Hello Timeweb!”.
Примечание. Если говорить не о тестовом запуске, то обычно бэкенд-серверы отдают одинаковый тип контента. Однако для тестирования будет удобнее, если это будет два сервера с разными сообщениями, потому что так будет проще отследить, что балансировка нагрузки работает корректно.
Flask – это микрофреймворк Python, который используется для создания веб-приложений. В этом руководстве мы будем использовать Flask, так как для написания базового приложения требуется всего несколько строк. Вам необязательно знать Python для того, чтобы выполнить дальнейшие действия.
Для начала обновите список доступных пакетов:
Теперь установите Pip, рекомендованная система управления пакетами Python.
И уже при помощи Pip установите Flask:
Теперь, когда все необходимые компоненты установлены, можно перейти к созданию файла, в котором будет находиться необходимый для первого бэкенд-сервера код.
Файл можно создать в домашней директории пользователя, под которым вы авторизованы.
Скопируйте в файл текст, который приведен ниже, а затем сохраните и закройте файл.
Первые две строчки инициализируют фреймворк Flask. Единственная функция home() будет отдавать строку текста (“Hello world!”). А за то, чтобы этот текст появлялся в ответ на HTTP-запросы, отвечает @app.route(‘/’).
Второй бэкенд-сервер будет точно таким же, как и первый, кроме единственного отличия в тексте.
Поэтому для начала необходимо скопировать первый файл:
Теперь откройте новый скопированный файл:
И в последней строчке вместо “Hello world!” напишите, к примеру, “Hello Timeweb!”:
Команда ниже запустит первый бэкенд-сервер, его порт 8080.
Второй сервер тоже необходимо запустить, его порт 8081:
Теперь протестируем работу обоих серверов.
В ответ вы должны получить “Hello world!”.
В этом случае вы увидите в терминале надпись “Hello Timeweb!”.
Примечание. Для того, чтобы закрыть оба тестовых сервера (например, после выполнения всех действий в этом руководстве), вы можете просто выполнить следующую команду: killall flask.
Далее мы изменим конфигурационный файл Apache для того, чтобы появилась возможность использовать его в качестве обратного прокси-сервера.
Установка Apache и mod_proxy
Примечание: нижеприведенные инструкции по установке Apache сокращены, поскольку подразумевается, что пользователь уже установил Apache или знает, как это сделать. Тем не менее, следуя этим инструкциям, можно установить Apache на Ubuntu VPS в считанные минуты.
Обновление операционной системы
Для начала нужно подготовить виртуальный сервер. Обновите компоненты системы по умолчанию, чтобы обеспечить использование их последних версий.
Итак, сначала необходимо обновить список исходных кодов программного обеспечения, а затем – устаревшие версии приложений:
aptitude update aptitude -y upgrade
Установка инструментов build-essential
Затем нужно установить основной пакет для сборки приложений под названием the build-essential. Данный пакет содержит инструменты, необходимые для установки приложений из исходного кода.
Чтобы установить build-essential, выполните команду:
aptitude install -y build-essential
Установка модулей и зависимостей
Теперь необходимо установить модули и зависимости. Для этого запустите команду:
aptitude install -y libapache2-mod-proxy-html libxml2-dev
Настройка прокси-сервера Apache HTTP для кэширования
1.Остановите прокси-службу ApacheHttpProxy с помощью следующей команды:
sc stop ApacheHttpProxy
2.Откройте файл C:\Program Files\Apache HTTP Proxy\conf\httpd.conf в простом текстовом редакторе. В конце содержимого файла добавьте следующие строки:
ServerRoot «C:\Program Files\Apache HTTP Proxy» DocumentRoot «C:\Program Files\Apache HTTP Proxy\htdocs» <Directory «C:\Program Files\Apache HTTP Proxy\htdocs»> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> CacheRoot «C:\Program Files\Apache HTTP Proxy\cache» |
3.Сохраните файл и запустите службу Apache.
sc start ApacheHttpProxy
ПРИМЕЧАНИЕ. Если каталог кэша нужно сохранить в другое место, например на другой диск, такой как D:\Apache HTTP Proxy\cache, тогда в последней строке приведенного выше кода вместо пути «C:\Program Files\Apache HTTP Proxy\cache» следует указать путь «D:\Apache HTTP Proxy\cache». |
Заключение
Теперь вы знаете, как настроить Apache в качестве обратного прокси-сервера для одного или нескольких внутренних серверов. mod_proxy можно эффективно использоваться для того, чтобы настраивать обратный прокси для серверов с приложениями, написанных на различных языках программирования и технологиях, таких как Python, Django или Ruby и Ruby on Rails. Также mod_proxy можно использовать для балансировки нагрузки между несколькими бэкенд-серверами для сайтов с большой нагрузкой, чтобы обеспечить высокую доступность таких ресурсов.
mod_proxy и mod_proxy_http самая популярная комбинация модулей, однако есть несколько других, которые поддерживают другие сетевые протоколы. Хотя в этом руководстве они не использовались, их тоже можно выделить отдельным списком:
- mod_proxy_ftp для FTP;
- mod_proxy_connect для SSL-туннеля;
- mod_proxy_ajp для протокола AJP (Apache JServ Protocol);
- mod_proxy_wstunnel для веб-сокетов.
источник