Что значит проксировать трекеры
Что такое прокси-сервер, зачем он нужен и как его настроить?
Поговорим о вечно актуальном: как обойти блокировку Hulu, как не остаться без Телеграма, если кто-то психанет и захочет его заблокировать, и как оставить без полезного трафика некоторые не особо качественные сайты. Поговорим о прокси-серверах.
Что такое прокси-сервер?
Прокси-сервер — это дополнительное звено между вами и интернетом. Некий посредник, который отделяет человека от посещаемого сайта. Создает условия, при которых сайт думает, что прокси — это и есть реальный человек. Только не вы.
Такие посредники довольно многофункциональны и используются в нескольких сценариях:
Все за счет того, что прокси подменяет IP-адрес, а трафик проходит через дополнительный сервер, на котором могут быть кэшированные данные или организованы дополнительные механизмы защиты данных.
Еще немножко об IP-адресе
Так как proxy-сервера отвечают за подмену IP, стоит немного пояснить, что он вообще делает и почему замена IP-адреса решает вышеописанные проблемы с доступом к сайтам и сервисам.
Поэтому люди используют proxy и прячутся за посторонними адресами, чтобы избегать блокировок и не так сильно светиться в интернете. Но опять же есть исключения, когда proxy-сервер в открытую делится данными о пользователе с сайтом и используется только для ускорения передачи запросов.
Типы прокси-серверов
Косвенно я уже упомянул о том, что proxy бывают разными. Зачастую тип сервера сопоставим с задачами, которые он выполняет. Но для начала мы обсудим именно базовую типизацию proxy, а потом более подробно поговорим о том, какие проблемы эти серверы решают.
Прозрачные
Такой прокси-сервер не утаивает от посещаемого сайта никакой информации. Во-первых, он честно сообщит ему о том, что является прокси, а во-вторых, передаст сайту IP-адрес пользователя по ту сторону сервера. С подобным типом можно встретиться в публичных заведениях, школах.
Анонимные
Более востребованный тип прокси. В отличие от первого, он тоже заявляет посещаемому ресурсу о своей proxy-сущности, но личные данные клиента не передает. То есть будет предоставлять обезличенную информацию для обеих сторон. Правда, неизвестно, как поведет себя сайт, который на 100% знает, что общается с proxy.
Искажающие
Такие прокси тоже идентифицируют себя честно, но вместо реальных пользовательских данных передают подставные. В таком случае сайты подумают, что это вполне себе реальный человек, и будут вести себя соответствующе. Например, предоставлять контент, доступный только в конкретном регионе.
Приватные
Вариант для параноиков. Такие прокси регулярно меняют IP-адреса, постоянно выдают фальшивые данные и заметно сокращают шансы веб-ресурсов отследить трафик и как-то связать его с клиентом.
Другие подкатегории
Прокси-серверы отличаются друг от друга и технически. Существуют:
Зачем нужен прокси-сервер?
На плечи proxy возлагают много задач. Сейчас подробно обсудим каждую.
Фильтрация доступных ресурсов
Распространенный сценарий использования в общественных сетях. С помощью такого сервера можно наблюдать за трафиком и при необходимости его «фильтровать». Это как родительский контроль. Только масштабы иные. Подобный proxy запросто могут поднять в крупной компании, чтобы сотрудники не лезли в Твиттер, пока занимаются делами. Поэтому при входе в соцсеть может вылезти предупреждение с просьбой заняться работой. Ну или вместо этого начальник просто зафиксирует все время пребывания в Фейсбуке, а потом вычтет это из зарплаты. С детьми ситуация примерно такая же. Можно ограничить их свободу в сети на время выполнения домашнего задания, к примеру.
Ускорение работы интернета
На прокси-серверах могут храниться кэшированные копии сайтов. То есть при входе на определенный сайт вы получите данные именно с proxy. С большой долей вероятности, через прокси загрузятся они заметно быстрее. Так происходит, потому что загруженность популярного сайта, на который вы хотите зайти, пострадает меньше, если большое количество людей будет заходить на него через шлюз в виде прокси-сервера.
Сжатие данных
Тоже весьма практичный сценарий. Помогает заметно снизить количество затрачиваемого трафика. На некоторых прокси установлены инструменты, которые сжимают весь запрашиваемый контент перед тем, как перенаправить его к конечному пользователю. По такому принципу работает «Турбо-режим» в браузерах Opera и Яндекса. Сжатие происходит на прокси-сервере, только он загружает полную версию медиа-контента и берет на себя всю нагрузку. А клиент уже скачивает те же данные, только в облегченном виде. Поэтому люди с лимитированным трафиком от этого выигрывают.
Конфиденциальность
Если возникают беспокойства за частную жизнь, то можно настроить приватный или анонимный шлюз, который будет всячески скрывать информацию о компьютере, который сделал первоначальный запрос (уберет его IP-адрес как минимум). Ими пользуются как отдельные личности, уставшие от слежки рекламистов, так и крупные корпорации, не желающие мириться со шпионажем со стороны конкурентов, например. Это, конечно, не панацея, но самые примитивные проблемы, связанные с конфиденциальностью, прокси решить может. А еще он не требует большого количества ресурсов и времени на реализацию.
Безопасность
Прокси может обезопасить не только частную жизнь, но и защитить от реальных угроз вроде вирусов. Можно настроить шлюз таким образом, чтобы он не принимал запросы с вредоносных ресурсов. И превратить получившийся прокси в своего рода массовый «антивирус», через который можно выпускать всех сотрудников компании, не переживая, что те нарвутся на какую-нибудь серьезную угрозу. Конечно, это не защитит пользователей на 100%, но зато даст небольшой прирост безопасности. А он тоже дорогого стоит. Поэтому proxy, используемые именно для защиты, не такая уж редкость.
Доступ к запрещенному контенту
Еще шлюз можно использовать, чтобы обойти региональные запреты. Это работает как с веб-страницами, так и с веб-приложениями. Можно смотреть заграничную библиотеку Netflix, слушать американский музыкальный сервис Pandora, смотреть что-то в Hulu и так далее. Можно заходить на сайты, которые блокируются конкретно в вашей стране. Или случайно заблокированные провайдером. Причем это могут быть совсем безобидные сайты. Я, например, долго не мог зайти на форум sevenstring.com. Ну и всем известная история с Телеграмом, который из недолгого забвения вытащили как раз таки proxy-серверы.
Сравнение прокси с VPN
VPN лучше как в плане безопасности, так и в плане удобства, но такая сеть чаще стоит приличных денег. Зачастую VPN сложнее в настройке и работают не так быстро. Сами посудите, вам обязательно нужен клиент для работы с виртуальными сетями или как минимум разрешения для браузера. Через proxy же можно подключаться, не устанавливая на компьютер ничего.
Риски, которые несет с собой использование прокси
Да, риски есть, причем серьезные. Придется потратить чуть больше времени на изучение proxy-серверов, прежде чем выбрать какой-то из них и начать использовать.
Например, стоит взять во внимание тот факт, что бесплатные прокси зачастую не очень хорошо подходят для решения вопросов безопасности. Чтобы как-то зарабатывать, владельцы шлюзов ищут иные пути для этого. Они продают пользовательские данные. Помогают распространять таргетинговую рекламу. Но даже этих денег не хватает, чтобы обеспечить высокую безопасность и скорость работы сервера, поэтому бесплатные варианты бывают тормозными и небезопасными.
Также стоит понимать: использование прокси-сервера равняется передаче личных данных третьему лицу. Обычно с ними знакомятся только провайдер связи и владельцы страниц, которые вы посещаете. Теперь появится еще одна сторона, у которой будет доступ ко всему вашему трафику. Не факт, что он будет шифроваться или храниться в безопасности. И неизвестно, на каких условиях proxy-сервер может взаимодействовать с государством.
Естественно, об этом никто напрямую рассказывать не станет. Но некоторые шлюзы смогли завоевать положительную репутацию. О них поговорим дальше.
Лучшие бесплатные прокси-серверы
Я не буду перечислять все сервисы. Поговорим лишь об основных анонимайзерах, которые работают прямо в браузере. А еще я расскажу о том, где можно найти прокси-серверы и на какие параметры обратить внимание, чтобы выбрать подходящий вариант.
Hide My Ass
Популярный анонимайзер от разработчиков антивируса Avast. Работает как расширение для Chrome и Firefox. Бесплатно разрешает подключиться к серверами из 5 стран. В их числе Германия, Нидерланды и США. Из особенностей можно отметить функцию автоматического включения при попытке зайти на некоторые сайты. Например, если заходите на американскую Pandora, то proxy включится сам.
Hotspot Shield
Это VPN-сервис с недурственной репутацией. Помимо предоставления доступа к VPN, у бренда есть как минимум 4 proxy-сервера, которыми можно пользоваться бесплатно. Для этого надо установить одноименное приложение на смартфон или расширение для браузера. Они тоже распространяются бесплатно.
ProxySite
Удобный сайт для быстрого доступа к Proxy-серверам. Работает как шлюз в духе Hide My Ass. Просто заходите на страницу, вводите адрес сайта, на который хотите попасть, а затем указываете страну, из которой хотите зайти. Тут даже есть несколько ссылок на популярные сайты, на которые часто заходят через прокси.
Как выбрать proxy-сервер?
Есть 5 факторов, на которые стоит положиться при выборе прокси:
Где найти proxy для ручной настройки?
Есть такой сайт как Hide My. На нем есть встроенный фильтр бесплатных proxy-серверов. Их там сотни. Можно выбрать страну, скорость, протокол, тип шифрования. В общем, что угодно.
Настраиваем прокси-сервер
В зависимости от платформы и используемых программ, настройка шлюза будет выполняться по-разному. Я буду брать в пример типовые варианты систем и браузеров. Windows, Firefox, iOS. Но эти же инструкции справедливы для других ОС и программ. Просто пункты меню и их расположение могут немного отличаться.
Итак, как настроить proxy-сервер:
На компьютере
Тут тоже есть два разветвления. Одна инструкция для настройки шлюза во всей системе, а вторая — только для браузера. Начнем с первой.
В системе
Чтобы настроить Proxy-сервер в Windows 10, делаем следующее:
На этом все. В macOS и Linux принцип тот же. Даже меню в настройках со схожими названиями. Проблем возникнуть не должно.
В браузере
Чтобы настроить прокси-сервер в Firefox, делаем следующее:
Для каждого типа прокси тут есть отдельная строка. Главное, не перепутать и ввести нужные данные в верные поля.
В телефоне или планшете
Покажу, как настроить proxy-сервер в iOS. Для этого:
В большинстве сборок Android все устроено примерно так же. Безусловно, у некоторых вендоров параметры могут находиться в других местах, но разобрать каждого из них в рамках этой статьи точно не получится.
Создаем свой прокси-сервер
Чтобы быть менее зависимым от владельцев конкретных прокси-серверов, можно поднять свой.
Все. Теперь надо только подключиться к своему серверу. Это можно сделать так же, как я уже описывал в инструкции к браузеру Firefox. Только надо:
Теперь вам известно, что такое прокси-сервер, как он функционирует и зачем может понадобиться. Засим откланяюсь. Более мне вам поведать не о чем.
Основы работы с Nginx: проксирование, балансировка нагрузки, буферизация и кэширование
В этом руководстве мы обсудим возможности HTTP-проксирования веб-сервера Nginx, которые позволяют ему передавать запросы на http-серверы бэкэнда для дальнейшей обработки. Nginx часто настраивается как обратный прокси-сервер, который помогает масштабировать инфраструктуру или передавать запросы другим серверам, которые не предназначены для обработки больших клиентских нагрузок.
Вы научитесь масштабировать свою инфраструктуру, используя встроенные функции балансировки нагрузки Nginx. Также вы узнаете, как с помощью буферизации и кеширования улучшить производительность прокси-операций клиентов.
Основы проксирования
Одной из причин использовать проксирование Nginx является возможность масштабирования инфраструктуры. Nginx умеет одновременно управлять несколькими параллельными соединениями. Это делает его идеальным сервером для контакта с клиентами. Сервер может передавать запросы на любое количество бэкэнд-серверов для обработки основного массива трафика, поступающего в вашу инфраструктуру. Это также обеспечивает гибкость при добавлении или замене бэкэнд-серверов по мере необходимости.
Вторя причина настроить HTTP-проксирование – это наличие в инфраструктуре серверов приложений, которые не могут обрабатывать клиентские запросы напрямую в производственных средах. Многие фреймворки предоставляют встроенные веб-серверы, но большинство из них не столь надежны, как высокопроизводительные серверы, такие как Nginx. Использование обратного прокси Nginx может улучшить пользовательский опыт и повысить безопасность.
Проксирование в Nginx осуществляется путем обработки запроса, направленного на сервер Nginx, и передачи его другим серверам для фактической обработки. Результат запроса передается обратно на Nginx, который затем передает информацию клиенту. Другими серверами в этом случае могут быть удаленные компьютеры, локальные серверы или даже другие виртуальные серверы, определенные в настройке Nginx. Серверы, к которым обращается прокси Nginx, называются upstream серверами.
Nginx может проксировать запросы на серверы, которые обмениваются данными с помощью протоколов http(s), FastCGI, SCGI и uwsgi или memcached через отдельные наборы директив для каждого типа проксирования. В этом мануале мы сосредоточимся на протоколе http. Экземпляр Nginx отвечает за передачу запроса и связь с любым компонентом обмена сообщениями в формате, который может понять upstream сервер.
Директива proxy_pass
Самый простой тип проксирования включает в себя передачу запроса на один сервер, который может связываться с помощью http. Этот тип проксирования известен как proxy pass и обрабатывается одноименной директивой proxy_pass.
Директива proxy_pass в основном встречается в контекстах location. Она также поддерживается блоками if в контексте location и limit_except. Когда запрос совпадает с адресом, указанным в proxy_pass, он пересылается по этому URL-адресу.
Рассмотрим такой пример:
В приведенном выше фрагменте конфигурации в конце блока server в определении proxy_pass не указывается URI. Для определений, соответствующих этому шаблону, запрошенный клиентом URI будет передан на upstream сервер без изменений.
Например, когда этот блок обрабатывает запрос /match/here/please, URI запроса будет отправлен на сервер example.com как http://example.com/match/here/please.
Рассмотрим альтернативный сценарий:
В приведенном выше примере прокси-сервер определяется вместе с сегментом URI в конце (/new/prefix). Когда в определении proxy_pass указывается URI, то часть запроса, которая соответствует определению location, заменяется этим URI.
К примеру, запрос /match/here/please будет передаваться на upstream сервер как http://example.com/new/prefix/please. Префикс /match/here заменяется на /new/prefix. Об этом важно помнить.
Иногда такая замена невозможна. В этих случаях URI в конце определения proxy_pass игнорируется, и на upstream сервер передается исходный URI клиента или URI, измененный другими директивами.
Например, при использованием регулярных выражений Nginx не может определить, какая часть URI соответствует выражению, поэтому он отправляет исходный URI-запрос клиента. Или, например, если директива rewrite используется в одном и том же location, она переписывает URI клиента, но он все же обрабатывается в одном блоке. В этом случае будет передан переписанный URI.
Обработка заголовков в Nginx
Чтобы upstream сервер обработал запрос должным образом, одного URI недостаточно. Запрос, поступающий от имени клиента через Nginx, будет выглядеть иначе, чем запрос, поступающий непосредственно от клиента. Большая часть этого – заголовки, которые согласуются с запросом.
Когда Nginx проксирует запрос, он автоматически вносит некоторые поправки в заголовки, полученные от клиента.
Первый вывод, который можно сделать из вышеизложенной информации: если вы не хотите передавать тот или иной заголовок, нужно задать ему значение пустой строки. Заголовки с такими значениями полностью удаляются из переданного запроса.
Также следует убедиться, что в нестандартных заголовках нет подчеркиваний, что если ваше бэкэнд-приложение будет обрабатывать такие заголовки. Если вам нужны заголовки, в которых используется символ подчеркивания, вы можете установить директиве underscores_in_headers значение on (это валидно либо в контексте http, либо в контексте объявления server по умолчанию для комбинации IP-адреса/порта). Если вы этого не сделаете, Nginx пометит эти заголовки как некорректные и просто сбросит их, прежде чем перейти к upstream серверу.
Заголовок Host часто имеет такие значения:
Настройка или сброс заголовков
Чтобы настроить или установить заголовки для прокси-соединений, можно использовать директиву proxy_set_header. Например, чтобы изменить заголовок Host и добавить дополнительные заголовки, нужно использовать что-то вроде этого:
Конечно, директиву proxy_set_header стоит переместить в контекст server или http, чтоб иметь возможность ссылаться на нее:
Раздел Upstream для балансировки нагрузки проксируемых соединений
В предыдущих примерах вы увидели, как сделать настроить простое HTTP-прокси соединение на одном сервере. Nginx позволяет легко масштабировать эту конфигурацию, указав целые пулы бэкэнд-серверов, на которые можно передавать запросы.
Это можно сделать с помощью директивы upstream, которая позволяет определить пул серверов. Эта конфигурация предполагает, что любой из перечисленных серверов способен обрабатывать запрос клиента. Это позволяет масштабировать инфраструктуру практически без усилий. Директива upstream должна быть установлена в контексте http конфигурации Nginx.
Рассмотрим простой пример:
# http context
upstream backend_hosts <
server host1.example.com;
server host2.example.com;
server host3.example.com;
>
server <
listen 80;
server_name example.com;
location /proxy-me <
proxy_pass http:// backend_hosts ;
>
>
В приведенном выше примере был создан контекст upstream под названием backend_hosts. После определения это имя будет доступно в proxy pass как обычный домен. Как вы можете видеть, в блоке server все запросы, сделанные в example.com/proxy-me/…, передаются в пул, который вы определили выше. В этом пуле хост выбирается с помощью настраиваемого алгоритма. По умолчанию это простой процесс round-robin (каждый запрос будет поочередно маршрутизироваться на другой хост).
Изменение алгоритма балансировки в контексте upstream
Настроить алгоритм в пуле upstream можно с помощью таких флагов и директив:
При изменении алгоритма блок может выглядеть так:
В приведенном выше примере сервер будет выбран по наименьшему количеству соединений. Можно также добавить директиву ip_hash, чтобы обеспечить «липкость» сессии.
Что касается метода hash, вы должны указать ключ для хэша. Это может быть что угодно:
В приведенном выше примере запросы будут распределяться на основе значений IP-адреса и порта клиента. Также здесь есть опциональный параметр consistent, который реализует алгоритм хэширования ketama consistent. Это означает, что если upstream серверы изменятся, это будет иметь минимальное воздействие на кэш.
Установка веса сервера для балансировки
В объявлениях бэкэнд-серверов по умолчанию все серверы весят одинаково. Это предполагает, что каждый сервер может и должен обрабатывать одинаковый объем нагрузки (с учетом эффектов алгоритмов балансировки). Тем не менее, вы также можете установить пользовательский вес своих серверов:
Теперь host1.example.com будет получать в три раза больше трафика, чем другие два сервера. Вес каждого сервера по умолчанию равен 1.
Использование буферов для освобождения бэкэнд-серверов
Один из главных вопросов при проксировании – насколько изменится скорость работы при добавлении сервера. Увеличение или уменьшение количества серверов можно значительно смягчить с помощью системы буферизации и кэширования Nginx.
При проксировании на другой сервер на опыт клиента влияет скорость двух разных подключений:
Nginx имеет возможность корректировать свое поведение на основе того, какое из этих соединений вы хотите оптимизировать.
Без буферов данные с прокси-сервера сразу же отправляются к клиенту. Если клиентские соединения быстрые, буферизацию можно отключить, чтобы клиент как можно скорее мог получить данные. При использовании буферов прокси-сервер Nginx будет временно хранить ответ бэкэнда, а затем передавать эти данные клиенту. Если клиент работает медленно, это позволит серверу Nginx быстрее закрыть соединение с бэкэндом. Затем он сможет обрабатывать передачу данных клиенту любым возможным способом.
Nginx по умолчанию использует буферизацию, так как скорость соединения, как правило, меняется в зависимости от клиента. Буферизация настраивается с помощью следующих директив. Их можно установить в контексте http, server или location. Важно иметь в виду, что директивы size касаются каждого запроса, поэтому они могут повлиять на производительность серверов при поступлении множества клиентских запросов.
Как вы можете видеть, Nginx предоставляет довольно много разных директив для настройки поведения буферизации. В большинстве случаев вам не придется использовать их, но некоторые из этих значений могут пригодиться. Возможно, наиболее полезными являются proxy_buffers и proxy_buffer_size.
В этом примере увеличивается количество доступных буферов для обработки запросов и уменьшается размер буфера для хранения заголовков:
# server context
proxy_buffering on;
proxy_buffer_size 1k;
proxy_buffers 24 4k;
proxy_busy_buffers_size 8k;
proxy_max_temp_file_size 2048m;
proxy_temp_file_write_size 32k;
location / <
proxy_pass http://example.com;
>
Если у вас есть быстрые клиенты, которым нужно быстро отправить данные, можно полностью отключить буферизацию. Nginx будет по-прежнему использовать буферы, если сервер upstream быстрее, чем клиент, но он попытается немедленно передать данные клиенту. Если клиент работает медленно, это может привести к тому, что upstream соединение останется открытым до тех пор, пока клиент не сможет получить данные. Когда буферизация выключена, будет использоваться только буфер, определенный директивой proxy_buffer_size:
# server context
proxy_buffering off;
proxy_buffer_size 4k;
location / <
proxy_pass http://example.com;
>
Высокая доступность (опционально)
Проксирование Nginx можно сделать более надежным, добавив избыточный набор балансировщиков нагрузки, чтобы создать инфраструктуру высокой доступности.
Настройка высокой доступности – это инфраструктура без единой точки отказа, и балансировщики нагрузки являются частью этой конфигурации. Имея несколько балансировщиков нагрузки, вы сможете предотвратить простои, если один из балансировщиков станет недоступен.
Кэширование и снижение времени ответа
Буферизация помогает освободить сервер бэкэнда для обработки большего количества запросов, но Nginx также может кэшировать контент с бэкэнд-серверов, устраняя необходимость подключения к upstream серверу для обработки запросов.
Настойка прокси-кэша
Для настройки кэширования ответов бэкэнд серверов можно использовать директиву proxy_cache_path, которая определяет пространство для хранения кэша. Её следует задавать в контексте http.
В приведенном ниже примере показано, как использовать эту и некоторые другие директивы для настройки системы кэширования.
# http context
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=backcache:8m max_size=50m;
proxy_cache_key «$scheme$request_method$host$request_uri$is_args$args»;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
Директива proxy_cache_path определяет каталог в файловой системе, где нужно хранить кэш. В этом примере это каталог /var/lib/nginx/cache. Если этот каталог не существует, вы можете создать его и определить права доступа к нему:
Параметр levels= указывает, как будет организован кэш. Nginx создаст ключ кеша путем хэширования значения ключа (он настраивается ниже). В результате будет создан каталог, имя которого состоит из одного символа (это будет последний символ хешированного значения), и подкаталог с именем из двух символов (следующие два символа в конце хэша). Это помогает Nginx быстро найти соответствующие значения.
Параметр keys_zone= определяет имя зоны кеша (backcache). Здесь также указывается, сколько метаданных можно хранить. В этом случае сервер будет хранить 8 МБ ключей. На 1 мегабайте Nginx может хранить около 8000 записей. Параметр max_size устанавливает максимальный размер кэшированных данных.
Директива proxy_cache_key устанавливает ключ, который будет использоваться для хранения кешированных значений. Этот же ключ используется для проверки того, можно ли запросить данные из кеша. Здесь используется комбинация схемы (http или https), метода HTTP-запроса, а также запрошенного хоста и URI.
Директива proxy_cache_valid может быть указана несколько раз. Она позволяет определить, как долго должны храниться значения в зависимости от кода состояния. В данном примере удачные и переадресованные ответы хранятся в течение 10 минут, а ответы 404 удаляются каждую минуту.
Теперь зона кэширования настроена, но пока что Nginx не знает, когда именно применять кеширование.
Эта информация указывается в контексте location для бекэнд серверов:
Используя директиву proxy_cache, можно указать, что для этого контекста следует использовать зону кэширования backcache. Nginx проверит запись перед тем, как перейти к серверу.
Рекомендации по кэшированию результатов
Кеширование увеличивает скорость прокси-сервера. Но не стоит забывать о нескольких нюансах.
Во-первых, любая личная информация пользователей ни в коем случае не должна кэшироваться, чтобы пользователи не получали в ответ данные о других пользователях. Эта проблема не касается статичных сайтов.
Если на сайте есть динамические элементы, им следует уделить внимание. Решение этой проблемы зависит от бекэнд-сервера. Для личных данных используется заголовок Cache-Control со значением no-cache, no-store или private.
Есть связанный с этим поведением заголовок max-age, который определяет срок хранения кэша в секундах.
Его значение зависит от чувствительности данных. При разумном использовании этого заголовка конфиденциальные данные будут в безопасности, а часто изменяемый контент будет своевременно обновляться.
Если вы используете nginx и на бэкэнде, добавьте директиву expires, которая определяет значение max-age заголовка Cache-Control:
Первый блок поддерживает кэш в течение часа. Второй блок присваивает заголовку Cache-Control значение no-cache. Для внесения других изменений примените директиву add_header: