Зв'яжіться з нами

info@serverion.com

Зателефонуйте нам

+1 (302) 380 3902

Повний посібник зі створення безпечного зворотного проксі-сервера Nginx

Повний посібник зі створення безпечного зворотного проксі-сервера Nginx

Створення безпечного, надійного та масштабованого зворотного проксі-сервера має вирішальне значення для компаній та ІТ-фахівців, які керують веб-сайтами з високим трафіком або складними програмами. Nginx, веб-сервер з відкритим кодом та зворотний проксі-сервер, є потужним рішенням для маршрутизації, оптимізації та захисту трафіку до ваших серверних служб. У цьому посібнику ми розглянемо процес налаштування надійного зворотного проксі-сервера за допомогою Nginx на Ubuntu 24.04, охоплюючи такі критичні кроки, як шифрування TLS, обмеження швидкості та інтеграція з Cloudflare.

Якщо ви керуєте веб-сайтами корпоративного рівня, платформами електронної комерції або медіасерверами, цей посібник допоможе вам підвищити продуктивність, забезпечити безперебійну роботу та захистити вашу інфраструктуру від вразливостей.

Що таке зворотний проксі-сервер Nginx?

Зворотний проксі-сервер Nginx діє як посередницький сервер між клієнтами та бекенд-сервісами. Він пересилає запити клієнтів на відповідний бекенд-сервер, оптимізуючи розподіл навантаження, підвищуючи безпеку та вмикаючи такі функції, як кешування, SSL-термінація та фільтрація трафіку. Така конфігурація особливо корисна для розміщення медіасерверів, багатосайтових програм та сервісів за брандмауерами.

Чому вам потрібен зворотний проксі

Зворотний проксі-сервер надає кілька ключових переваг:

  • Покращена безпекаПриховує IP-адреси серверів сервера та вмикає шифрування через TLS/SSL.
  • Балансування навантаженняРівномірно розподіляє трафік між кількома серверами бекенду.
  • ОптимізаціяЗменшує затримку та підвищує ефективність використання ресурсів.
  • Масштабованість: Полегшує керування сценаріями з високим трафіком.
  • Легкість управлінняСпрощує налаштування кількох серверних служб за єдиним доменом.

У цьому посібнику ми покажемо, як:

  • Налаштуйте Nginx як зворотний проксі.
  • Захистіть свою конфігурацію за допомогою TLS-сертифікатів Let's Encrypt.
  • Налаштуйте розширені оптимізації, такі як обмеження швидкості та переадресація запитів.
  • Інтегруйте Cloudflare, щоб обійти обмеження портів інтернет-провайдера.

Крок 1: Встановлення Nginx та Certbot на Ubuntu 24.04

Оновіть свою систему

Перш ніж встановлювати будь-яке програмне забезпечення, переконайтеся, що ваша система оновлена:

оновлення sudo apt та оновлення sudo apt 

Встановлення Nginx та Certbot

Використовуйте такі команди для встановлення Nginx та Certbot за допомогою плагіна Nginx:

sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y 

Перевірка встановлення

Переконайтеся, що Nginx запущено:

статус sudo systemctl nginx 

Щоб перевірити доступ, визначте IP-адресу вашого сервера:

IP-адреса 

Відвідайте IP-адресу у браузері. У разі успіху ви побачите вітальну сторінку Nginx за замовчуванням.

Крок 2: Налаштування правил брандмауера

Увімкнути нескладний брандмауер (UFW)

UFW дозволяє легко керувати правилами брандмауера:

sudo ufw enable 'Nginx Full' sudo ufw enable OpenSSH sudo ufw enable 

Перевірте стан вашого брандмауера, щоб переконатися, що відкриті правильні порти:

статус sudo ufw 

Крок 3: Налаштування конфігурації проксі-сервера Nginx

Створення власних файлів конфігурації

Для кращої гнучкості та безпеки використовуйте файли фрагментів для зберігання певних конфігурацій. Створіть такі файли:

  1. Заголовки безпеки:
    sudo nano /etc/nginx/snippets/security-headers.conf 
    Визначте заголовки безпеки для посилення захисту:
    add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; 
  2. Налаштування проксі-сервера:
    sudo nano /etc/nginx/snippets/proxy.conf 
    Оптимізуйте довгі потоки та запобігайте повільним відповідям:
    proxy_connect_timeout 60 с; proxy_send_timeout 60 с; proxy_read_timeout 60 с; 
  3. Обмеження швидкості:
    sudo nano /etc/nginx/snippets/rate-limit.conf 
    Зменшення надмірних запитів:
    limit_req_zone $binary_remote_addr зона=mylimit:10m швидкість=10r/s; 

Включити фрагменти в основну конфігурацію

Відредагуйте основну конфігурацію Nginx:

sudo nano /etc/nginx/nginx.conf 

Додайте наступне під http блок:

включити /etc/nginx/snippets/*.conf; 

Перезапустіть Nginx, щоб застосувати зміни:

sudo systemctl перезавантажити nginx 

Крок 4: Налаштування зворотного проксі-сервера для бекенд-сервісу

Створіть віртуальний хост

Створіть файл конфігурації для вашого бекенд-сервісу:

sudo nano /etc/nginx/sites-available/jellyfin 

Приклад конфігурації медіасервера Jellyfin:

сервер { слухати 80; ім'я_сервера jelly.yourdomain.com; розташування / { proxy_pass http://10.10.0.112:8096; включно /etc/nginx/snippets/proxy.conf; } } 

Увімкніть сайт, створивши символічне посилання:

sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ 

Перевірте та перезавантажте Nginx:

sudo nginx -t sudo systemctl перезавантажити nginx 

Крок 5: Захист вашого домену за допомогою Let's Encrypt TLS

Щоб захистити свій домен, скористайтеся Let's Encrypt для видачі безкоштовних сертифікатів:

sudo certbot --nginx -d jelly.yourdomain.com 

Certbot автоматично налаштовує SSL у файлі вашого сайту Nginx. Щоб гарантувати автоматичне оновлення сертифікатів, перевірте, чи активний таймер systemd:

sudo systemctl list-timers | grep certbot 

Крок 6: Інтеграція Cloudflare для додаткової безпеки та обходу портів інтернет-провайдера

Встановлення Cloudflared

Cloudflared створює безпечний тунель для маршрутизації трафіку через Cloudflare, обходячи обмеження інтернет-провайдера на портах 80 та 443:

  1. Завантажте .deb пакет зі сторінки GitHub Cloudflare.
  2. Встановіть пакет:
    sudo dpkg -i cloudflared-версія.deb 

Налаштування тунелю

Автентифікуйте свій обліковий запис Cloudflare:

вхід у тунель Cloudflared 

Створіть новий тунель:

тунель Cloudflared створити мій тунель 

Відредагуйте файл конфігурації Cloudflare:

sudo nano /etc/cloudflared/config.yml 

Приклад конфігурації:

тунель: файл облікових даних my-tunnel: /home/user/.cloudflared/my-tunnel.json вхід: - ім'я хоста: jelly.yourdomain.com служба: http://localhost:8096 - служба: http_status:404 

Запустіть та увімкніть службу тунелювання:

sudo systemctl увімкнути cloudflared sudo systemctl запустити cloudflared 

Ключові висновки

  • Зворотний проксі-сервер NginxВажливо для безпечної маршрутизації трафіку та оптимізації серверних служб.
  • TLS-шифруванняВикористовуйте Let's Encrypt, щоб захистити свої домени за допомогою безкоштовних SSL-сертифікатів.
  • Правила брандмауераВідкрийте необхідні порти для HTTP (80), HTTPS (443) та SSH (22).
  • Оптимізація безпекиВпроваджуйте заголовки та обмеження швидкості для запобігання атакам.
  • Інтеграція з CloudflareВикористовуйте тунелі Cloudflared для безпечного хостингу, зручного для інтернет-провайдерів.
  • АвтоматизаціяТаймери Systemd забезпечують автоматичне оновлення SSL-сертифікатів.

Висновок

Налаштування безпечного зворотного проксі-сервера Nginx вимагає уваги до деталей та ретельного налаштування, але винагорода варта зусиль. Незалежно від того, чи розміщуєте ви медіасервери, такі як Jellyfin, чи керуєте корпоративними додатками, цей посібник надасть вам інструменти та знання для створення високобезпечного та ефективного середовища. Завдяки таким функціям, як TLS, тунелі Cloudflare та розширена оптимізація, ваша інфраструктура готова до сучасних вимог.

Джерело: «Перестаньте викривати свої програми! Створіть безпечний зворотний проксі-сервер Nginx!» – KeepItTechie, YouTube, 19 серпня 2025 р. – https://www.youtube.com/watch?v=MzbhS2S7H_g

Використання: Вбудовано для довідки. Короткі цитати використовуються для коментарів/оглядів.

Пов’язані публікації в блозі

uk