Тайм аут прокси что это
Здравствуйте.
Вопрос теоретический, хотелось бы иметь объяснение следующего поведения nginx.
Ситуация: есть nginx в докере, локальный файл nginx.conf смонтирован в /etc/nginx/nginx.conf
nginx настроен на реверсивный прокси, т.е. получает запросы на 80 порт, перенаправляет на 5555.
часть конфигурации выглядит так:
На порту 5555 ничего не работает, его никто не слушает.
когда я пытаюсь подключиться к порту 80, то через 2 секунды получаю ошибку "502 Bad Gateway"
Вопрос: почему несмотря на параметр proxy_connect_timeout 60s; nginx не выдерживает таймаут в 60 секунд, а сразу через 2 секунды сообщает, что не может подключиться.
Вопрос №2: мне нужно, чтобы nginx, когда он не может подключиться, повторял попытки подключения в течение некоторого заданного времени. такое поведение связано с тем, что иногда backend сервер перезапускается и в течение нескольких секунд не обслуживает соединения, не хочется, чтобы пользователи получали ошибку.
Зачем нужен прокси-сервер?
На плечи proxy возлагают много задач. Сейчас подробно обсудим каждую.
Фильтрация доступных ресурсов
Распространенный сценарий использования в общественных сетях. С помощью такого сервера можно наблюдать за трафиком и при необходимости его «фильтровать». Это как родительский контроль. Только масштабы иные. Подобный proxy запросто могут поднять в крупной компании, чтобы сотрудники не лезли в Твиттер, пока занимаются делами. Поэтому при входе в соцсеть может вылезти предупреждение с просьбой заняться работой. Ну или вместо этого начальник просто зафиксирует все время пребывания в Фейсбуке, а потом вычтет это из зарплаты. С детьми ситуация примерно такая же. Можно ограничить их свободу в сети на время выполнения домашнего задания, к примеру.
Ускорение работы интернета
На прокси-серверах могут храниться кэшированные копии сайтов. То есть при входе на определенный сайт вы получите данные именно с proxy. С большой долей вероятности, через прокси загрузятся они заметно быстрее. Так происходит, потому что загруженность популярного сайта, на который вы хотите зайти, пострадает меньше, если большое количество людей будет заходить на него через шлюз в виде прокси-сервера.
Сжатие данных
Конфиденциальность
Если возникают беспокойства за частную жизнь, то можно настроить приватный или анонимный шлюз, который будет всячески скрывать информацию о компьютере, который сделал первоначальный запрос (уберет его IP-адрес как минимум). Ими пользуются как отдельные личности, уставшие от слежки рекламистов, так и крупные корпорации, не желающие мириться со шпионажем со стороны конкурентов, например. Это, конечно, не панацея, но самые примитивные проблемы, связанные с конфиденциальностью, прокси решить может. А еще он не требует большого количества ресурсов и времени на реализацию.
Безопасность
Прокси может обезопасить не только частную жизнь, но и защитить от реальных угроз вроде вирусов. Можно настроить шлюз таким образом, чтобы он не принимал запросы с вредоносных ресурсов. И превратить получившийся прокси в своего рода массовый «антивирус», через который можно выпускать всех сотрудников компании, не переживая, что те нарвутся на какую-нибудь серьезную угрозу. Конечно, это не защитит пользователей на 100%, но зато даст небольшой прирост безопасности. А он тоже дорогого стоит. Поэтому proxy, используемые именно для защиты, не такая уж редкость.
Доступ к запрещенному контенту
Сравнение прокси с VPN
VPN лучше как в плане безопасности, так и в плане удобства, но такая сеть чаще стоит приличных денег. Зачастую VPN сложнее в настройке и работают не так быстро. Сами посудите, вам обязательно нужен клиент для работы с виртуальными сетями или как минимум разрешения для браузера. Через proxy же можно подключаться, не устанавливая на компьютер ничего.
Создаем свой прокси-сервер
Чтобы быть менее зависимым от владельцев конкретных прокси-серверов, можно поднять свой.
- Сначала арендуем виртуальный сервер (VPS/VDS) и фиксируем его IP-адрес.
- Затем скачиваем и устанавливаем программу PuTTY.
- Открываем вкладку Session и в поле Host Name (or IP address) вводим адрес арендованного сервера.
- После переходим в подпункт Connection.
- Меняем значение напротив строчки Seconds between keepalives (0 to turn off) на 100.
- Потом проходим по пути Connection/SSH/Tunnels в боковой панели меню.
- В строчке Source Port вводим номер 3128.
- Ставим галочку напротив пунктов Dynamic и Auto.
- А затем нажимаем на кнопку Open.
Все. Теперь надо только подключиться к своему серверу. Это можно сделать так же, как я уже описывал в инструкции к браузеру Firefox. Только надо:
- Выбрать протокол SOCKS.
- Указать в качестве адреса localhost.
- Указать порт 3128.
Теперь вам известно, что такое прокси-сервер, как он функционирует и зачем может понадобиться. Засим откланяюсь. Более мне вам поведать не о чем.
Единая точка выхода в web, I2P, TOR и обход блокировок
Преамбула… Даная статья была написана ещё летом но, по независящим от автора причинам, немножко подзадержалась.
Где найти proxy для ручной настройки?
Есть такой сайт как Hide My. На нем есть встроенный фильтр бесплатных proxy-серверов. Их там сотни. Можно выбрать страну, скорость, протокол, тип шифрования. В общем, что угодно.
Это работает так:
Лучшие бесплатные прокси-серверы
Я не буду перечислять все сервисы. Поговорим лишь об основных анонимайзерах, которые работают прямо в браузере. А еще я расскажу о том, где можно найти прокси-серверы и на какие параметры обратить внимание, чтобы выбрать подходящий вариант.
Hide My Ass
Популярный анонимайзер от разработчиков антивируса Avast. Работает как расширение для Chrome и Firefox. Бесплатно разрешает подключиться к серверами из 5 стран. В их числе Германия, Нидерланды и США. Из особенностей можно отметить функцию автоматического включения при попытке зайти на некоторые сайты. Например, если заходите на американскую Pandora, то proxy включится сам.
Hotspot Shield
Это VPN-сервис с недурственной репутацией. Помимо предоставления доступа к VPN, у бренда есть как минимум 4 proxy-сервера, которыми можно пользоваться бесплатно. Для этого надо установить одноименное приложение на смартфон или расширение для браузера. Они тоже распространяются бесплатно.
ProxySite
Удобный сайт для быстрого доступа к Proxy-серверам. Работает как шлюз в духе Hide My Ass. Просто заходите на страницу, вводите адрес сайта, на который хотите попасть, а затем указываете страну, из которой хотите зайти. Тут даже есть несколько ссылок на популярные сайты, на которые часто заходят через прокси.
Муки выбора
На самом деле особых мук не было. Ибо, по большому счёту, из имеющихся известных прокси серверов поставленным требованиям удовлетворяли два. Это privoxy и tinyproxy . Но tinyproxy оказался более живым, более легковесным и более простым, поэтому и был выбран и немедленно установлен (в качестве примера используется текущая версия Manjaro Linux).
Само собой, до этого, уже были установлены настроены пакеты tor и i2pd . ( sudo pacman -Syu tor i2pd ).
Риски, которые несет с собой использование прокси
Да, риски есть, причем серьезные. Придется потратить чуть больше времени на изучение proxy-серверов, прежде чем выбрать какой-то из них и начать использовать.
Например, стоит взять во внимание тот факт, что бесплатные прокси зачастую не очень хорошо подходят для решения вопросов безопасности. Чтобы как-то зарабатывать, владельцы шлюзов ищут иные пути для этого. Они продают пользовательские данные. Помогают распространять таргетинговую рекламу. Но даже этих денег не хватает, чтобы обеспечить высокую безопасность и скорость работы сервера, поэтому бесплатные варианты бывают тормозными и небезопасными.
Также стоит понимать: использование прокси-сервера равняется передаче личных данных третьему лицу. Обычно с ними знакомятся только провайдер связи и владельцы страниц, которые вы посещаете. Теперь появится еще одна сторона, у которой будет доступ ко всему вашему трафику. Не факт, что он будет шифроваться или храниться в безопасности. И неизвестно, на каких условиях proxy-сервер может взаимодействовать с государством.
Естественно, об этом никто напрямую рассказывать не станет. Но некоторые шлюзы смогли завоевать положительную репутацию. О них поговорим дальше.
Базовая настройка tinyproxy
Итак, настроим базовые перенаправления, что-бы в обычный web ходило напрямую, а в *.i2p и *.onion через соответствующие вышестоящие (parent) proxy.
Для начала практически все параметры в конфиге остаются по умолчанию.
Что делать посетителю сайта при возникновении ошибки 504
Если после проведения всех вышеозначенных рекомендаций любая ошибка, в т.ч. 504 Gateway Time Out, продолжает возникать регулярно, обратитесь в техподдержку проблемного интернет-ресурса.
Список «zapret.info»
Ну что-ж, связка прокси базово работает, теперь начинается самое интересное — обход блокировок роскомнадзора. К сожалению, tinyproxy не поддерживает внешние файлы со списком parent proxy, но это не должно быть препятствием. Ведь мы можем сгенерировать монолитный конфиг «on the fly».
Копируем имеющийся конфиг tinyproxy под новым именем:
Слегка правим новый /etc/tinyproxy/tinyproxy.conf.static : LogLevel Info → LogLevel Error
Создаём юнит который будет клонировать репозиторий проекта zapret.info — sudo systemctl edit --full --force z-i-prepare.service :
Создаём юнит который будет генерировать конфиг tinyproxy, в рантайме — sudo systemctl edit --full --force tinyproxy-cfg-generator.service :
… и собственно скрипт /usr/local/bin/tinyproxy-cfg-gen.sh к нему:
Таймер и сервис, который раз в сутки будет выкачивать обновления списка и рестартовать основной сервис: sudo systemctl edit --full --force z-i-update-daily.timer :
И сервис к нему sudo systemctl edit --full --force z-i-update-daily.service :
Наконец вишенка на торте, редактируем tinyproxy.service под наши нужды — sudo systemctl edit tinyproxy.service :
А теперь, со всем этим безобразием мы попытаемся взлететь ©
Заключение
Решение проблем с появлением ошибки сервера 504 администратором веб-ресурса
Некорректная работа сайта чаще всего просто раздражает посетителя и приводит к тому, что пользователь находит альтернативный ресурс. Для владельца сайта такие сбои могут носить более глобальные последствия. Поэтому очень важно своевременно обнаруживать баги и максимально быстро устранять их. Для раннего мониторинга стоит использовать все возможные инструменты:
Соблюдение последнего правила не только позволит практически без дополнительных затрат отслеживать все возможные проблемы, которые возникают при посещении сайта. Своевременная обработка пользовательских запросов, быстрый ответ, выдача рекомендаций и публичное обсуждение повышают лояльность и создают дополнительный PR-эффект.
Вот некоторые причины, приводящие к возникновению ошибки 504 Gateway Time Out
- Резкий скачок нагрузки на сайт вследствие поступления большого количества внешних запросов, вызванного DDoS-атаками или действиями вирусного ПО, пиковым посещением сайта, например, в момент проведения различных акций в интернет-магазине, или единовременной загрузкой на сайт большого объема контента (импорт информации из CSV- или XML-файлов).
- Некорректная работа скриптов, плагинов и дополнений, конфликтующих как между собой, так и внутри.
- Превышение лимита доступных ресурсов при использовании виртуального хостинга.
Еще одна возможная причина возникновения ошибки 504 – исполняемый скрипт не укладывается в отведенный лимит времени. Это бывает, когда скрипт обращается к другим сайтам либо просто выполняет тяжелую операцию, например, строит поисковый индекс.
Рекомендации по устранению ошибки 504 Gateway Time Out методами администрирования сайта
Ошибка 504 Gateway Time Out может быть вызвана недавними изменениями или обновлениями на сайте. Если после отката к состоянию, предшествующему изменениям, баг исчез, следует найти конкретное действие, повлекшее возникновение ошибки. Для этого необходимо проверить журнал ошибок соответствующей CMS. Пользователи WordPress могут включить журналирование ошибок в файле wp-config.php добавлением следующих строк:
Все возникающие варианты ошибок будут записаны в файле wp-contents/debug.log.
При использовании CDN для более быстрого получения контента, в частности CloudFlare, который работает как CDN и как сервис предотвращения негативных последствий от DDoS, вы можете столкнуться с двумя типами ошибок 504. В случае возникновения проблемы на стороне CloudFlare лучшим решением будет связаться с поддержкой CloudFlare или отключить его. Второй вариант – когда сбой возникает на стороне хостинг-провайдера. В этой ситуации также необходимо обратиться в службу поддержки хостера.
Также увеличить лимит в max_execution_time в php.ini:
После внесения изменений следует перезапустить Apache. Ошибка 504 Gateway Time Out должна исчезнуть.
Также рекомендуется увеличить max_execution_time в php.ini:
Далее перезапустите Nginx и откройте сайт.
Более простым решением устранения данной проблемы является использование панели управления сервером.
Данный способ позволяет администрировать настройки веб-сервера без использования консоли, один раз настроить их под ваш проект и больше не подключаться к серверу без острой необходимости.
Например, в бесплатной панели управления Vesta Control Panel достаточно внести изменения в раздел «Сервер» и навсегда забыть о возможности возникновения ошибок на сайте.
И далее внести соответствующие изменения.
Аналогичным способом проблема устраняется и при использовании альтернативных панелей управления хостингом – Ajenti, CentOS Web Panel, ISPmanager и других.
Если вы считаете, что появление 504 Gateway Timeout вызвано превышением лимита использования ресурсов серверного железа, оптимальным решением будет аренда выделенного сервера или VPS. Когда ваш сайт уже размещен на виртуальном хостинге, но ни одна из рекомендаций не привела к исправлению error 504, обратитесь к хостинг-провайдеру. В этом случае подробно опишите причины, которые, как вы полагаете, привели к появлению сбоя.
How it works?
Вдумчивый читатель безусловно поинтересуется, Для чего такие танцы с бубном? Что-ж, в заключении не мешает прояснить некоторые моменты. Пойдём прямо по пунктам предыдущего раздела.
- Тут всё просто. Мы сохраняем в отдельный файл ту часть конфигурации, которая не должна меняться автоматически.
- Очень важный параметр, сокращающий время загрузки основного сервиса с часа(SIC!) до, примерно, полутора минут (нетбучный AMD проц года 2009-го и HDD на 5400 об./мин.). Разумеется это не единственный способ повышения производительности.
- «bootstrap» юнит, который запускается всегда, но отрабатывает только в том случае если отсутствует директория /usr/local/lib/z-i/ либо пуст файл /usr/local/lib/z-i/dump.csv (Директивы Condition* ). Ключик --depth 1 позволяет склонировать только последний коммит, а не все 8 Гб.
- Основная генерация конфига и ещё один лайвхак для повышения производительности. Из csv
awk -ом вырезается поле с доменом, очищается от лишних символов. Удаляются строки с пустым доменом, далее cat отправляет результат на stdout . а уже юнит, благодаря директиве StandardOutput= записывает весь вывод в конфиг файл в /run на tmpfs ! По зависимостям запускается после того как отработает «bootstrap» юнит из предыдущего пункта. - Раз в сутки, начиная с нуля часов, с джиттером в час, обновляем репозиторий и перегенерим конфиг, с рестартом сервиса. Точнее рестартуем сервис с перегенерацией конфтига.
- (и 7.) Ну тут всё понятно, запуск вспомогательных юнитов и основного.
Данная связка работает уже неделю 2,5 месяца. Глюкобагов, пока, вроде-бы не замечено. готовые конфиги и скрипты живут на гитхабе, PR приветствуются!
Описания ошибки могут иметь различную форму:
Наличие дополнительного словесного описания помогает конкретизировать причину возникновения сбоя.
Производительный хостинг в подарок при заказе лицензии 1С-Битрикс
Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год хостинга – специально для сайтов на 1С-Битрикс.
Что такое прокси-сервер?
Прокси-сервер — это дополнительное звено между вами и интернетом. Некий посредник, который отделяет человека от посещаемого сайта. Создает условия, при которых сайт думает, что прокси — это и есть реальный человек. Только не вы.
Такие посредники довольно многофункциональны и используются в нескольких сценариях:
- Для обеспечения конфиденциальности. Чтобы сайты не знали, кто именно их посещает.
- Для повышения уровня безопасности при выходе в сеть. Базовые атаки будут направлены именно на прокси.
- Еще он нужен, чтобы получать доступ к контенту, который существует только в определенной локации.
- Чтобы ускорить доступ к некоторым ресурсам в интернете.
- Ну и для того, чтобы получить доступ к заблокированным страницам. Сайтам, мессенджерам и так далее.
Все за счет того, что прокси подменяет IP-адрес, а трафик проходит через дополнительный сервер, на котором могут быть кэшированные данные или организованы дополнительные механизмы защиты данных.
Еще немножко об IP-адресе
Так как proxy-сервера отвечают за подмену IP, стоит немного пояснить, что он вообще делает и почему замена IP-адреса решает вышеописанные проблемы с доступом к сайтам и сервисам.
- IP-адрес говорит сайтам и веб-приложениям, где вы находитесь. Что ставит под угрозу конфиденциальность и безопасность.
- Его же используют, чтобы блокировать доступ к контенту. Зачастую на основе физического расположения.
Поэтому люди используют proxy и прячутся за посторонними адресами, чтобы избегать блокировок и не так сильно светиться в интернете. Но опять же есть исключения, когда proxy-сервер в открытую делится данными о пользователе с сайтом и используется только для ускорения передачи запросов.
Типы прокси-серверов
Косвенно я уже упомянул о том, что proxy бывают разными. Зачастую тип сервера сопоставим с задачами, которые он выполняет. Но для начала мы обсудим именно базовую типизацию proxy, а потом более подробно поговорим о том, какие проблемы эти серверы решают.
Прозрачные
Такой прокси-сервер не утаивает от посещаемого сайта никакой информации. Во-первых, он честно сообщит ему о том, что является прокси, а во-вторых, передаст сайту IP-адрес пользователя по ту сторону сервера. С подобным типом можно встретиться в публичных заведениях, школах.
Анонимные
Более востребованный тип прокси. В отличие от первого, он тоже заявляет посещаемому ресурсу о своей proxy-сущности, но личные данные клиента не передает. То есть будет предоставлять обезличенную информацию для обеих сторон. Правда, неизвестно, как поведет себя сайт, который на 100% знает, что общается с proxy.
Искажающие
Такие прокси тоже идентифицируют себя честно, но вместо реальных пользовательских данных передают подставные. В таком случае сайты подумают, что это вполне себе реальный человек, и будут вести себя соответствующе. Например, предоставлять контент, доступный только в конкретном регионе.
Приватные
Вариант для параноиков. Такие прокси регулярно меняют IP-адреса, постоянно выдают фальшивые данные и заметно сокращают шансы веб-ресурсов отследить трафик и как-то связать его с клиентом.
Другие подкатегории
Прокси-серверы отличаются друг от друга и технически. Существуют:
Настраиваем прокси-сервер
В зависимости от платформы и используемых программ, настройка шлюза будет выполняться по-разному. Я буду брать в пример типовые варианты систем и браузеров. Windows, Firefox, iOS. Но эти же инструкции справедливы для других ОС и программ. Просто пункты меню и их расположение могут немного отличаться.
Итак, как настроить proxy-сервер:
На компьютере
Тут тоже есть два разветвления. Одна инструкция для настройки шлюза во всей системе, а вторая — только для браузера. Начнем с первой.
В системе
Чтобы настроить Proxy-сервер в Windows 10, делаем следующее:
- Открываем основные настройки системы.
- Выбираем пункт настроек «Сеть и интернет».
- Затем переходим в подпункт «Прокси».
- Спускаемся до блока настроек «Настройка прокси вручную».
- Переводим тумблер «Использовать прокси-сервер в положение «Вкл.».
- Вводим адрес прокси-сервер и порт в соответствующие поля.
- Затем нажимаем на кнопку «Сохранить».
На этом все. В macOS и Linux принцип тот же. Даже меню в настройках со схожими названиями. Проблем возникнуть не должно.
В браузере
Чтобы настроить прокси-сервер в Firefox, делаем следующее:
Для каждого типа прокси тут есть отдельная строка. Главное, не перепутать и ввести нужные данные в верные поля.
В телефоне или планшете
Покажу, как настроить proxy-сервер в iOS. Для этого:
В большинстве сборок Android все устроено примерно так же. Безусловно, у некоторых вендоров параметры могут находиться в других местах, но разобрать каждого из них в рамках этой статьи точно не получится.
Что такое прокси-сервер, зачем он нужен и как его настроить?
Поговорим о вечно актуальном: как обойти блокировку Hulu, как не остаться без Телеграма, если кто-то психанет и захочет его заблокировать, и как оставить без полезного трафика некоторые не особо качественные сайты. Поговорим о прокси-серверах.
Как выбрать proxy-сервер?
Есть 5 факторов, на которые стоит положиться при выборе прокси:
- Хорошая репутация. Сами понимаете, подключаться к прокси, который уже когда-то скомпрометировали, не самая удачная идея.
- Большое количество серверов. Так меньше шансов, что соединение вдруг оборвется. И всегда будет из чего выбрать. Можно будет указать сервер рядом со своей страной, чтобы увеличить скорость работы. Или выбрать тот, где работают нужные сервисы и веб-сайты.
- Подробная информация о серверах. Важно знать, где он расположен, какие технологии используются. Что за протокол, есть ли шифрование и так далее.
- Прокси-сервер должен собирать о вас минимум информации. Я не верю, что есть такие серверы, которые не собирают ее совсем, но платные и престижные делают это по минимуму. Да и используют ее исключительно в своих целях. Без продажи и передачи государственным органам.
- Дополнительные механизмы обеспечения безопасности. Некоторые прокси блокируют вредоносные ресурсы, фильтруют рекламные баннеры, шифруют передаваемые данные и делают прочие полезные штуки.
Читайте также: