Підготовка
У сегменті підготовки загальні вказівки щодо обох згаданих вище методів знищуються. Очевидно, що для відкриття файлу конфігурації Nginx важливо мати консоль для доступу до сервера через SSH та належний текстовий редактор як nano. Після того, як обидві отримані, використовуйте наступні команди, щоб відкрити, зберегти та застосувати зміни. Наступні кроки передбачають, що користувач вже отримав доступ до сервера через SSH.
- Введіть таку команду, щоб відкрити файл конфігурації за замовчуванням Nginx. Якщо кожен домен має окремий файл конфігурації, використовуйте його ім’я замість типового.
- За замовчуванням або у файлі конфігурації введіть коди, зазначені одним із згаданих способів. Обов’язково використовуйте лише один із них.
- Використовуйте наступну команду, щоб перевірити файл конфігурації, перш ніж перевести його в режим реального часу.
- Якщо все в правильному порядку, продовжуйте і введіть наступну команду, щоб застосувати зміни, щоб набути чинності.
Спосіб 1: Загальний метод
Загальний метод дуже простий у реалізації та розумінні, оскільки він містить лише блок розташування. Крім того, він блокує запити лише до певних форматів файлів, а не блокує кожен запит від недійсних референтів до сервера.
- Скопіюйте наступний фрагмент коду.
- Відкрийте файл nginx за замовчуванням, як показано на етапі «Підготовка».
- Вставте скопійований фрагмент коду під перший блок розташування, знайдений у файлі за замовчуванням. У nginx нечутливий до регістру регулярних виразів (~ *) завжди має пріоритет перед косою рискою (/), і, таким чином, такий фрагмент коду виконується перед блоком розташування косої риски вперед.
- Збережіть і закрийте файл за замовчуванням, а потім виконайте 3, 4 кроки на етапі «Підготовка», щоб зміни вступили в силу.
У наступному прикладі він блокує запити на файли css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf та eot. У блоці розташування є 10 умовних операторів. Перше умовне твердження дозволяє безпосередньо переглядати ресурси через веб-браузер, 2й і 3рд блоки дозволяють переглядати ресурси через оригінальний сайт (як відкритий, так і піддомени www), решта блоків крім пошуку?q та останній блок дозволяють веб-сканерам отримувати доступ та індексувати ресурси, що дуже важливо для індексації зображень як у зображеннях Google, так і у зображеннях bing. Пошук?q дозволяє службі кешування Google доступ та збереження ресурсів разом із сторінкою, і таким чином доступ до сторінки можна отримати безпосередньо через результати пошуку Google, коли сайт офлайн.
місце розташування ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $якщо ($ http_referer !~ "^ $")
встановити $ rule_0 1 $ rule_0;
якщо ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
встановити $ rule_0 2 $ rule_0;
якщо ($ http_referer !~ "^ http: // nucuta.com $ ")
встановити $ rule_0 3 $ rule_0;
якщо ($ http_referer !~ * "Google.")
встановити $ rule_0 4 $ rule_0;
якщо ($ http_referer !~ * "пошук?q = кеш ")
встановити $ rule_0 5 $ rule_0;
якщо ($ http_referer !~ * "msn.")
встановити $ rule_0 6 $ rule_0;
якщо ($ http_referer !~ * "yahoo.")
встановити $ rule_0 7 $ rule_0;
якщо ($ http_user_agent !~ * "googlebot")
встановити $ rule_0 8 $ rule_0;
якщо ($ http_user_agent !~ * "msnbot")
встановити $ rule_0 9 $ rule_0;
якщо ($ http_user_agent !~ * "нечітка")
встановити $ rule_0 10 $ rule_0;
якщо ($ rule_0 = "10987654321")
повернення 403;
перерва;
Спосіб 2: Метод Valid_Referers
Дійсні судді - це найзручніший і загальновизнаний метод блокування недійсних суддів з легкістю. Він містить лише два рядки порівняно з попереднім методом і дуже гнучкий. Однак це трохи важко засвоїти, оскільки це стосується регулярних виразів та іншого механізму блокування запитів від недійсних суддів.
- Скопіюйте наведений нижче фрагмент коду між ними та на самому початку основного блоку розташування.
- Замініть список доменних імен дозволеними іменами доменів, наприклад google, bing або власні домени тощо.
- Збережіть і закрийте файл за замовчуванням, а потім виконайте 3, 4 кроки на етапі «Підготовка», щоб внести зміни в силу.
valid_referers немає заблокованих імен серверів
*.Linux.com linux.* www.Linux.com / about /~ \.Linux \.;
if ($ invalid_referer)
повернення 403;
В основному він має два блоки коду, valid_referers та умовний вираз if зі змінною invalid_referer. За замовчуванням цей блок коду використовується між і на самому початку блоку розташування перед виконанням будь-якого іншого коду, але його можна використовувати і в будь-якому іншому місці, наприклад, між блоком коду місцезнаходження з регулярними виразами до виявити конкретні формати файлів, щоб зробити блокування актуальним для вищезазначених форматів файлів, як у способі 1. Як пояснювалося раніше, метод містить лише два блоки коду, перший блок коду містить 3 ключові слова, перший з них - "немає", коли в запиті HTTP відсутнє поле реферала, другий "блокується" при видаленні поля референта будь-якою середньою стороною, такою як проксі, брандмауер тощо., третє ключове слово призначене для вказання дійсних доменних імен.
Коли доменне ім'я починається із символу «~», це розглядається як регулярний вираз, і, отже, можуть використовуватися дуже складні шаблони, але може бути важко зрозуміти, якщо регулярні вирази невідомі. Якщо в операторі valid_referers не виконується жодна з умов, для змінної invalid_referer встановлено порожній рядок, інакше встановлено значення 1, що означає, якщо прийдешній запит не містить поля реферала або якщо nginx визначив, що поле референта видалено брандмауером або проксі-сервером, або якщо для поля реферала встановлено вказані домени (дійсний список імен доменів), тоді недійсна змінна реферера встановлюється порожнім рядком, а отже, якщо умова не виконується. Однак, якщо запит надходить з домену, який не вказаний у виразі valid_referers як дійсний домен, він блокується.
ВИСНОВОК
Будь ласка, не забудьте розглянути цей вміст та запобігти гарячим посиланням на ваших сайтах, розміщених у Nginx.