Архив метки: nginx

Установка сертификата SSL в NGINX

При выпуске сертификата у любого CA клиент получает два файла — сертификат (.crt) и приватный ключ (.key). Первым делом их нужно поместить на веб-сервер, обычно для этого используется директория /etc/ssl, скорпируйте эти файлы в неё, либо в любое другое место (тогда нужно будет исправить пути в конфиге nginx).

Читать

Создание самоподписанного сертификата SSL

Для создания простого самоподписанного сертификата в Ubuntu достаточно всего двух команд. Первая создает открытый и закрытый ключи, вторая — ключ Диффи-Хелмана.

Читать

Как заблокировать хотлинкинг с помощью Nginx

Nginx — это легкий веб-сервер, способный обрабатывать огромное количество запросов в определенный момент времени, не загружая сервер. Он содержит сложные функции, такие как асинхронная обработка, поддержка ipv6, загрузчик кеша, поддержка http/2, горячая ссылка на блоки, пулы потоков, SPDY и SSL и многое другое. Среди них одна из самых важных функций для любого веб-сайта в целом — это блокировка хотлинкинга. Горячие ссылки — это злонамеренная практика, часто применяемая некоторыми мелкими веб-мастерами, когда они не могут позволить себе стоимость полосы пропускания и, таким образом, в конечном итоге берут ее откуда-то еще. Это мешает законным веб-мастерам использовать пропускную способность, за которую они заплатили. Вдобавок к этому связанный ресурс может быть недоступен для пользователей, которые посещают исходный веб-сайт, когда полоса пропускания, выделенная для исходного веб-мастера, исчерпана, а владелец сайта не платил за чрезмерно потребляемую пропускную способность. В общем, чтобы сохранить целостность, горячие ссылки на веб-сайты должны быть недоступны, и в этой статье рассказывается, как это легко сделать.

 

Подготовка

В подготовительном сегменте общие инструкции для обоих указанных ниже методов отменяются. Очевидно, что важно иметь консоль для доступа к серверу через SSH и правильный текстовый редактор, например nano, для открытия файла конфигурации Nginx. Как только оба будут получены, используйте следующие команды, чтобы открыть, сохранить и применить изменения. Следующие шаги предполагают, что пользователь уже получил доступ к серверу через SSH.

  • Введите следующую команду, чтобы открыть файл конфигурации Nginx по умолчанию. Если у каждого домена есть отдельный файл конфигурации, используйте его имя вместо имени по умолчанию.

nano /etc/nginx/sites-available/default

  • В файле по умолчанию или в файле конфигурации введите коды, указанные в одном из указанных ниже методов. Обязательно используйте только один из них.

    • Используйте следующую команду, чтобы проверить файл конфигурации перед его переводом в рабочий режим.

    nginx -t

    • Если все в правильном порядке, введите следующую команду, чтобы изменения вступили в силу.

    sudo systemctl restart nginx

 

Метод 1: Общий метод

Общий метод очень легко реализовать и понять, поскольку он содержит только блок местоположения. Кроме того, он блокирует запросы только к определенным форматам файлов вместо того, чтобы блокировать каждый запрос от недействительных ссылок на сервер.

  1. Скопируйте следующий фрагмент кода.
  2. Откройте файл nginx по умолчанию, как показано на этапе «Подготовка».
  3. Вставьте скопированный фрагмент кода под первый блок местоположения, найденный в файле по умолчанию. В nginx нечувствительность к регистру в регулярном выражении (~*) всегда имеет приоритет перед прямой косой чертой (/), и поэтому следующий фрагмент кода выполняется перед блоком местоположения прямой косой черты.
  4. Сохраните и закройте файл по умолчанию, а затем выполните 3, 4 шага на этапе «Подготовка», чтобы изменения вступили в силу.

В следующем примере он блокирует запросы к файлам css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf и eot. В блоке местоположения есть 10 условных операторов. Первый условный оператор позволяет напрямую просматривать ресурсы через веб-браузер, 2- й и 3- й блоки позволяют просматривать ресурсы через исходный сайт (как голые, так и субдомены www), остальные блоки, кроме поиска? q и последний блок позволяют сканерам поисковых систем получать доступ и индексировать ресурсы, что очень важно для индексации изображений как в изображениях Google, так и в изображениях Bing. Поиск? Q позволяет службе кеширования Google получать доступ и сохранять ресурсы вместе со страницей, и, таким образом, страница может быть доступна непосредственно через результат поиска Google, когда сайт находится в автономном режиме.

location ~* .(css|gif|ico|jpeg|jpg|js|png|woff|woff2|ttf|ttc|otf|eot)$ {

if ($http_referer !~ "^$"){

set $rule_0 1$rule_0;

}

if ($http_referer !~ "^http://nucuta.com/.*$"){

set $rule_0 2$rule_0;

}

if ($http_referer !~ "^http://nucuta.com$"){

set $rule_0 3$rule_0;

}

if ($http_referer !~* "google."){

set $rule_0 4$rule_0;

}

if ($http_referer !~* "search?q=cache"){

set $rule_0 5$rule_0;

}

if ($http_referer !~* "msn."){

set $rule_0 6$rule_0;

}

if ($http_referer !~* "yahoo."){

set $rule_0 7$rule_0;

}

if ($http_user_agent !~* "googlebot"){

set $rule_0 8$rule_0;

}

if ($http_user_agent !~* "msnbot"){

set $rule_0 9$rule_0;

}

if ($http_user_agent !~* "slurp"){

set $rule_0 10$rule_0;

}

if ($http_referer !~* "yandex."){ 

set $rule_0 11$rule_0; 

}

if ($rule_0 = "10987654321"){

return 403;

break;

}

}

Метод 2: метод Valid_Referers

Действительные рефералы — это наиболее удобный и широко признанный метод простой блокировки недействительных рефереров. Он содержит всего две строки по сравнению с предыдущим методом и очень гибкий. Однако его немного сложно переварить, поскольку в нем используются регулярные выражения и другой механизм для блокировки запросов от недопустимых референтов.

  1. Скопируйте следующий фрагмент кода в середину и в самое начало основного блока местоположения.
  2. Замените список доменных имен разрешенными доменными именами, например google, bing, или вашими собственными доменами и т. Д.
  3. Сохраните и закройте файл по умолчанию, а затем выполните 3, 4 шага на этапе «Подготовка», чтобы изменения вступили в силу.

valid_referers нет заблокированных server_names

*.linux.com linux.* www.linux.com/about/

~.linux.;if ($invalid_referer) {

return 403;

}




 

В основном он имеет два блока кода, valid_referers и условное выражение if с переменной invalid_referer. По умолчанию этот блок кода используется между и в самом начале блока местоположения перед выполнением любого другого кода, но его можно использовать и в любом другом месте, например, между блоком кода местоположения с регулярными выражениями для обнаруживать определенные форматы файлов, чтобы сделать блокировку релевантной для вышеупомянутых форматов файлов, как в методе 1. Как объяснялось ранее, метод содержит только два блока кода, первый блок кода содержит 3 ключевых слова, первое — «нет», когда Поле referer отсутствует в HTTP-запросе, второе поле «блокируется», когда поле referer удаляется какой-либо промежуточной стороной, такой как прокси, брандмауэр и т. д., третье ключевое слово предназначено для указания действительных доменных имен.

Когда имя домена начинается с символа «~», оно рассматривается как регулярное выражение, и поэтому могут использоваться очень сложные шаблоны, но может быть трудно понять, если регулярные выражения известны недостаточно хорошо. Если ни одно из условий не выполняется в операторе valid_referers, переменная invalid_referer устанавливается в пустую строку, в противном случае она устанавливается в 1, что это означает, если поступающий запрос не содержит поля referer или если nginx определил, что поле referer удалено брандмауэром или прокси-сервером, или если в поле referer заданы указанные домены (список допустимых доменных имен), то для недопустимой переменной referer устанавливается пустая строка, и, следовательно, ее условие if не выполняется. Однако, если запрос поступает из домена, который не указан в выражении valid_referers как допустимый домен, он блокируется.

 

ВЫВОД

Обязательно примите во внимание этот контент и не допускайте ссылок на свои сайты, размещенные на Nginx.



2021-02-18T22:28:50
NGINX

Как исправить ошибку 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.



2020-12-27T09:53:44
NGINX

Команды Nginx, которые вы должны знать

Nginx произносится как «движок x» — это бесплатный высокопроизводительный HTTP-сервер и обратный прокси-сервер с открытым исходным кодом, отвечающий за обработку нагрузки некоторых из крупнейших сайтов в Интернете. Его можно использовать как автономный веб-сервер и как обратный прокси-сервер для Apache и других веб-серверов.

Если вы разработчик или системный администратор, скорее всего, вы имеете дело с Nginx на регулярной основе.

В этом руководстве мы рассмотрим наиболее важные и часто используемые команды Nginx, включая запуск, остановку и перезапуск Nginx. Читать

Настройка обратного прокси Nginx

Обратный прокси-сервер — это служба, которая принимает запрос клиента, отправляет запрос одному или нескольким прокси-серверам, получает ответ и доставляет ответ сервера клиенту.

Благодаря своей производительности и масштабируемости NGINX часто используется в качестве обратного прокси-сервера для HTTP-серверов и серверов, отличных от HTTP. Типичная конфигурация обратного прокси-сервера — поставить Nginx перед приложениями Node.js , Python или Java . Читать