Всем привет! Сегодня ко мне на обзор попался роутер Netis MW5230. Сначала с ним познакомимся, подключим, настроим. Я расскажу про настройку, как используя обычный кабель от провайдера, так и 3G/4G модема. Если вам нужен список модемов, которые имеют поддержку модели Нетис, то смотрим отдельную главу. В конце я кратко опишу свой личный отзыв, плюсы, минусы и некоторые нюансы. Читать
Архив рубрики: Публикации
Как исправить ошибку 502 Bad Gateway в Nginx?
Nginx был запущен в 2004 году как веб-сервер с открытым исходным кодом. С момента выпуска он очень часто используется для хостинга веб-сайтов. Помимо этого, он также используется как балансировщик нагрузки, прокси-сервер электронной почты, обратный прокси-сервер и HTTP-кеш. Как и любой другой веб-сервер, Nginx также подвержен определенным ошибкам, из которых наиболее распространенной является ошибка 502 Bad Gateway. Это очень общий тип ошибки, которая возникает, когда вы пытаетесь получить доступ к веб-серверу, но не можете его достичь. В этом случае ваш браузер может отобразить ошибку 502 Bad Gateway. Поскольку вместе с этой ошибкой не появляется никакой другой информации, пользователь не имеет представления о том, что именно пошло не так и как их исправить.
Поэтому в сегодняшней статье мы попытаемся найти все потенциальные причины ошибки 502 Bad Gateway в Nginx, а также способы ее исправления.
Причины ошибки 502 Bad Gateway в Nginx
Ошибка 502 Bad Gateway в Nginx может быть вызвана несколькими причинами, наиболее распространенные из которых перечислены ниже:
Недостижимый домен.
Когда вы вводите имя домена в строке поиска браузера и нажимаете клавишу Enter для доступа к этому веб-сайту, самой первой задачей, которая выполняется, является обращение к вашей системе доменных имен (DNS). DNS-сервер сопоставляет указанное доменное имя со своим зарезервированным IP-адресом, а затем связывается с соответствующим сервером, который, в свою очередь, отвечает вам, отображая запрошенную веб-страницу в вашем веб-браузере. Однако иногда DNS-серверу не удается достичь указанного домена из-за ошибки 502 Bad Gateway в Nginx. Это может произойти из-за определенных изменений, происходящих в вашем DNS, которые вступят в силу через достаточно времени после того, как он начнет работать правильно.
Чрезмерно активированные брандмауэры
Иногда настройки брандмауэра настолько строгие и жесткие, что они даже блокируют законных пользователей и запрещают им доступ к вашему сайту. Это, в свою очередь, может привести к тому, что пользователи увидят ошибку 502 Bad Gateway всякий раз, когда они попытаются получить доступ к вашему сайту.
Хостинг-сервер выходит из строя
Поскольку серверы имеют ограниченную емкость, в которой они не могут обслуживать запросы пользователей, поэтому, как только эта емкость будет достигнута, все будущие входящие пользователи могут столкнуться с ошибкой 502 Bad Gateway, поскольку ваш сервер будет отключен. Другой причиной этого может быть то, что вы намеренно остановили свой сервер для обслуживания.
Исправление ошибки 502 Bad Gateway в Nginx
В зависимости от причин ошибки 502 Bad Gateway в Nginx вы можете попытаться устранить ее, используя любое из следующих решений:
Обновите свою веб-страницу
Иногда вы можете увидеть ошибку 502 Bad Gateway только из-за некоторых временных проблем с подключением, которые можно решить, просто обновив веб-страницу и проверив, есть ли у вас доступ к веб-странице. Если вам по-прежнему не удается перейти на желаемую веб-страницу, вы также можете попытаться очистить кеш браузера, потому что иногда в кеше браузера сохраняется ответ с ошибкой 502 Bad Gateway. Из-за этого ваш браузер снова и снова отображает эту ошибку, поэтому очистка кеша может решить эту проблему.
Выполните тест Ping.
Если вы по-прежнему не можете получить доступ к своему веб-серверу даже после обновления веб-страницы и очистки кеша браузера, возможно, на вашем веб-сервере возникли серьезные проблемы с подключением. В этом случае вы можете попробовать выполнить тест Ping, при котором вы отправляете запрос Ping на свой сервер и проверяете, доступен ли он или нет. Если ваш сервер доступен, то вы сможете получить к нему доступ, если нет, то вам придется искать другие решения, перечисленные ниже.
Ищите возможные изменения в вашем DNS
Возможно, вы поменяли поставщика услуг хостинга или изменили IP-адрес, с которым можно связаться с вашим веб-сервером. Эти изменения всегда отражаются на DNS-сервере, но для их правильного выполнения требуется некоторое время. В этом случае вам нужно подождать, пока изменения вступят в силу во всем вашем DNS, после чего вы больше не будете видеть ошибку 502 Bad Gateway в Nginx.
Мониторинг журналов сервера. Журналы
сервера содержат подробную информацию о состоянии вашего сервера и всех действиях, которые он выполняет. Если вы регулярно отслеживаете журналы сервера, они могут очень помочь вам в выяснении, что именно пошло не так, следовательно, позволяет исправить ошибку 502 Bad Gateway в Nginx, поскольку знание точной причины ошибки на самом деле является первый шаг к устранению этой ошибки.
Перепроверьте настройки брандмауэра
Вам необходимо применить это исправление, если вы выяснили, что настройки брандмауэра слишком строгие и даже блокируют доступ законных пользователей к вашему сайту. В этом случае сброс настроек брандмауэра может легко исправить ошибку 502 Bad Gateway в Nginx.
Отладка кода вашего веб-сайта
Иногда проблема связана не с проблемами подключения, а скорее с ошибкой кода вашего веб-сайта, которая вызывает ошибку 502 Bad Gateway в Nginx. Выявление таких ошибок вручную практически невозможно, поэтому настоятельно рекомендуется отлаживать код своего веб-сайта в изолированной среде. Это не только определит точную проблему, которую вы можете немедленно исправить, но и предотвратите повреждение вашей физической системы из-за запуска на ней ошибочного кода, поскольку вы запускаете ее в изолированной среде.
Попробуйте связаться с вашим поставщиком услуг хостинга
Иногда, когда вы не можете разместить свой собственный веб-сервер, вы берете услуги хостинга в аренду у поставщика услуг хостинга. В этом случае проблема, которая вызывает ошибку 502 Bad Gateway в Nginx, возможно, связана не с вашей стороной, а скорее с какой-то проблемой с услугой хостинга, которую вы получаете. Единственное решение этой проблемы — связаться с вашим поставщиком услуг хостинга, который не только возьмет на себя ответственность за выяснение этой проблемы, но также может предложить способы, с помощью которых вы можете предотвратить повторение этой ошибки в будущем.
Заключение
В этой статье мы кратко познакомили вас с Nginx и наиболее распространенным типом ошибок, с которыми сталкивается этот веб-сервер, в частности, с ошибкой 502 Bad Gateway. Затем мы также указали все возможные причины этой ошибки. Наконец, мы поделились с вами всеми различными решениями о том, как можно исправить эту ошибку в Nginx.
Анонимно в интернете vs fingerprint
Анонимность в вебе: миф или реальность?
Большинство из вас знают, что любые действия в Сети отслеживаются и впоследствии используются, в частности, для показа таргетированной, говоря проще, персонализированной рекламы. Поэтому, когда требуется анонимно посетить какой-нибудь сайт и не оставить при этом никаких следов, опытные пользователи пользуются анонимным инкогнито режимом браузера. Но знаете ли вы о том, что даже в этом случае вас отслеживают и идентифицируют? Это так. Порой ситуация с показом персонализированной рекламы доходит до абсурда. Вы можете обсуждать покупку товара по телефону, находясь в магазине, а вернувшись домой, увидите на ПК рекламные объявления по теме вашей беседы. Вы можете только задумываться о том, что хотите получить в подарок, а вашим родственникам уже будут показываться объявления с вариантами, которые могут вам понравиться. Современные технологии. Нет, эта статья не о теории всемирного заговора. Мы взглянем на вопрос приватности с практической стороны, а если конкретнее: каким образом отслеживаются действия пользователей в интернете и почему нельзя рассчитывать на анонимность при использовании приватного окна браузера. Заметим, что уровень приватности в принципе не сильно зависит от того, какие у вас установлены браузер и даже операционная система. Потому информация будет полезна для всех.
Стандартные методы
Общеизвестны (как и общедоступны) следующие методы сохранения анонимности:
- установка в браузере настроек, запрещающих персонализацию рекламы;
- установка в браузере настроек, запрещающих сохранение cookie-файлов;
- периодическая очистка истории посещений и кеша браузера.
Указанные действия необходимы и действительно повышают уровень анонимности, однако не являются панацеей. Полностью отказаться от того, чтобы ваши действия отслеживали… неудобно и нецелесообразно. Почему? Потому что идентификация пользователей значительно упрощает серфинг в интернете: от автоматической авторизации на сайтах до подходящих вам результатов поиска. И именно с этой благой целью разрабатывалась данная технология – помочь рядовым пользователям и владельцам веб-сайтов (webtracking). Для вторых, в частности, всегда актуальным являлось отсеивание посещений роботов, что сделать без идентификации непросто. Но, само собой, рекламщики быстро увидели для себя новые возможности и решили их не упускать. Не сомневаемся, что именно благодаря участию рекламной отрасли технологии интернета достигли такого уровня и продолжают развиваться (не особо интересуясь нашим с вами мнением).Большинство знает об уже упомянутых cookie-файлах и с разной степенью активности «чистит» их. Но метод, который мог работать в 90-х, уже не является актуальным, так как разработаны и активно используются многие другие способы идентификации пользователя, в том числе без его ведома и согласия. Рассмотрим их все по порядку.
Невкусные печеньки
Ну как невкусные, скорее не всем по вкусу. Сами по себе cookie-файлы (cookie–англ. печенье) безобидны и полезны. Это небольшие текстовые документы, содержащие информацию для удобной аутентификации, хранения пользовательских настроек, контроля доступа к сайту. Cookie никуда не прячутся и находятся на виду. Обычно их название совпадает с доменом сайта, к которому они относятся. И каждый браузер умеет эти самые cookie удалять (по запросу пользователя). Другой вопрос, что не все пользователи удаляют такие файлы, либо не зная о данной возможности (необходимости), либо опасаясь утратить доступ к некоторым сайтам, где у них не запрашивается пароль. Отчасти они правы: многие сайты хранят в cookie данные об авторизации для автоматического «захода» на них,.. но ведь пользователи должны хранить «доступы» (логин и пароль) отдельно, а не в непонятных для них файлах. Что касается возможности ограничения или запрета сохранения cookie-файлов на уровне браузера (общие настройки браузера или настройки конкретного сайта), то тут не всё просто. Интернет-браузеры могут «неправильно» считать своими cookie-файлы, принятые, в частности, через HTTP-редиректы. Кроме того, отдельные сайты для идентификации пользователя используют несколько cookie-файлов, что усложняет процесс их удаления.
Отключить вспышку
Современные браузеры постепенно отказываются от использования технологии AdobeFlash (flash– англ.вспышка). В том же Chrome надо повозиться, чтобы flash-объекты стали отображаться на конкретном сайте. Но пока технология не ушла в прошлое, flash-cookie продолжают активно использоваться. «Научное» название этих файлов – Локальные общие объекты (LocalSharedObjects, ЛОО). Важным отличием от простых «кукисов» является способность хранить не только текст (логично). В том числе по этой причине ЛОО тяжело поддаются контролю и очистке. Ранее настройки ЛОО находились на «адобовском» сайте, теперь же они по большей части интегрированы в браузеры, что делает управление ими проще, однако все равно не абсолютным.
Современные методы
Одним из современных способов идентификации пользователя является OriginBoundCertificates (ChannelID), с помощью которых https-сервер идентифицирует клиента. Каждый домен имеет свой сертификат, используемый для будущих соединений. Уникальным идентификатором выступает криптографический хеш сертификата, который отправляется клиентом в виде части легитимного SSL-handshake. Этот процесс никак не отслеживается и не управляется пользователем.Sessionidentifiers и Sessiontickets – механизмы TLS для возобновления прерванных https-соединений без осуществления полного handshake – также дают возможность серверу отслеживать клиента. В современных браузерах предусмотрена функция создания своего внутреннего DNS-кеша для ускорения процесса разрешения имен и снижения риска одной из форм атак на веб-сервисы DNS rebinding. При определенном умении в этом кеше можно сохранить идентифицирующую информацию. Есть мнение, что при наличии доступных шестнадцати IP-адресов, для идентификации вообще всех компьютеров хватит девяти кешированных«имен». Тем не менее это лишь теория, ведь внутренний DNS-кеш браузера ограничен и возможно возникновение конфликтов разрешения имен DNS провайдера.
Что же делать?
Вышеприведенный список способов отслеживания действий пользователей впечатляет. Но ведь и он не полный, это только те способы, которые лежат на поверхности. Поэтому всегда надо на всякий случай иметь в виду, что любые действия в интернете отслеживаются. И при этом не забывать регулярно чистить кеш, историю просмотров и загрузок, а также cookie-файлы.
Как, наконец, выучить Regex?
Перевод статьи «Step up your Regex game».
Photo by Madelynn woods on Unsplash
Изучение Regex (регулярных выражений) — не фунт изюма. Поначалу это не то чтобы интересно и уж тем более не просто, но это очень важный навык, когда дело касается работы со строками. В этой статье вы найдете советы по изучению Regex, ссылки на руководства и шпаргалки. Читать
Функция getattr() в Python
Огромное количество встроенных модулей, функций и операторов Python помогает программистам выполнять различные задачи. Функция getattr() — это встроенная функция Python, которая позволяет программистам получать доступ к значению атрибута объекта. Если значение не найдено, функция getattar() возвращает значение по умолчанию. По этой причине функция getattr() используется в основном для доступа к значениям атрибутов объектов. Эта статья предоставит подробное объяснение функции getattr() с некоторыми примерами.
Синтаксис
Прежде чем перейти к реализации функции getattr(), сначала обсудим ее синтаксис. Синтаксис функции getattr() следующий:
getattr(object_name,attribute_name,defalut_value)
Функция getattr() принимает в качестве аргумента три параметра:
- object_name: имя объекта, к атрибуту которого нам нужно получить доступ.
- attribute_name: имя атрибута, к которому нам нужно получить доступ.
- default_value: значение по умолчанию, которое возвращается, если атрибут не найден.
Если атрибут name не найден и мы не определяем default_value, функция getattar() вызывает исключение AttributeError.
Примеры
Теперь мы рассмотрим несколько примеров с использованием функции getattr(). Мы создали студенческий класс и определили некоторые атрибуты для этого класса. Мы получаем доступ к этим атрибутам с помощью функции getattar().
# создание класса студент
class Student:
#определение атрибута name
name = "AndreyEx"
#определение атрибута email
email = "AndreyEx@example.ru"
# Создание объекта класса ученика
std_obj = Student()
# теперь std_obj - наш объект
# доступ к атрибуту имени
print("Значение атрибута имени:", getattr(std_obj, 'name'))
# доступ к атрибуту электронной почты
print("Значение атрибута электронной почты:", getattr (std_obj, 'email'))
Вывод
Функция getattr() успешно вернула значения атрибутов.
Теперь мы попытаемся получить доступ к атрибуту, который не определен. Мы определим значение по умолчанию для этого отсутствующего атрибута.
# создание класса Student
class Student:
# определение атрибута имени
name = "AndreyEx"
# определение атрибута электронной почты
email = "AndreyEx@example.ru"
# Создание объекта класса Student
std_obj = Student()
# Теперь std_obj - наш объект
# доступ к атрибуту age
print("Возраст:", getattr(std_obj, 'age', ' Более 20'))
Определенное значение — «Больше 20».
Вывод
В случае отсутствия атрибута «age» печатается определенное значение.
Если значение не определено, функция getattr() вызовет исключение AttributeError. Давайте посмотрим на пример этого.
# создание класса Student
class Student:
# определение атрибута name
name = "AndreyEx"
# определение атрибута email
email = "AndreyEx@example.ru"
std_obj = Student()
# теперь std_obj - наш объект
# доступ к атрибуту age
print("Возраст:", getattr(std_obj, 'age'))
Вы также можете использовать функцию getattr() с namedtuple для доступа к значениям. Namedtuple — это контейнер типа словаря, но вы можете получить доступ к его значениям с помощью функции getattar(). Namedtuple — это класс модуля коллекций. Давайте реализуем именованный кортеж и получим доступ к значениям с помощью функции getattr(). Мы создаем именованный набор для student.
# импорт модуля collections
import collections
# создание именованного кортежа для ученика
# name и age - это ключи
Student = collections.namedtuple('Student', [ 'name', 'age' ])
# создание нового учителя и добавление значений
std = Student("AndreyEx", 21)
print("Имя:", getattr(std, "name"))
print("Возраст:", getattr(std, "age"))
Заключение
Функция getattar() — это встроенная функция в Python, которая возвращает значение атрибута объекта. Основная причина использования функции getattr() заключается в том, что она упрощает доступ к значению атрибута, используя имя атрибута. Имя атрибута определяется как строка, а значение мы получаем с помощью функции getattar(). Также можно определить значение для отсутствующего атрибута. Надеюсь, после прочтения этой статьи вы узнали больше о том, как использовать функцию getattar() в Python.
Как установить Elasticsearch на Debian 10
Elasticsearch — это распределенная система полнотекстового поиска и аналитики с открытым исходным кодом. Он поддерживает операции RESTful и позволяет хранить, искать и анализировать большие объемы данных в режиме реального времени.
Elasticsearch — одна из самых популярных поисковых систем для приложений со сложными поисковыми требованиями, таких как крупные магазины электронной коммерции и аналитические приложения. Читать