Повний посібник зі створення безпечного зворотного проксі-сервера Nginx
Створення безпечного, надійного та масштабованого зворотного проксі-сервера має вирішальне значення для компаній та ІТ-фахівців, які керують веб-сайтами з високим трафіком або складними програмами. Nginx, веб-сервер з відкритим кодом та зворотний проксі-сервер, є потужним рішенням для маршрутизації, оптимізації та захисту трафіку до ваших серверних служб. У цьому посібнику ми розглянемо процес налаштування надійного зворотного проксі-сервера за допомогою Nginx на Ubuntu 24.04, охоплюючи такі критичні кроки, як шифрування TLS, обмеження швидкості та інтеграція з Cloudflare.
Якщо ви керуєте веб-сайтами корпоративного рівня, платформами електронної комерції або медіасерверами, цей посібник допоможе вам підвищити продуктивність, забезпечити безперебійну роботу та захистити вашу інфраструктуру від вразливостей.
Що таке зворотний проксі-сервер Nginx?
Зворотний проксі-сервер Nginx діє як посередницький сервер між клієнтами та бекенд-сервісами. Він пересилає запити клієнтів на відповідний бекенд-сервер, оптимізуючи розподіл навантаження, підвищуючи безпеку та вмикаючи такі функції, як кешування, SSL-термінація та фільтрація трафіку. Така конфігурація особливо корисна для розміщення медіасерверів, багатосайтових програм та сервісів за брандмауерами.
sbb-itb-59e1987
Чому вам потрібен зворотний проксі
Зворотний проксі-сервер надає кілька ключових переваг:
- Покращена безпекаПриховує 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
Створення власних файлів конфігурації
Для кращої гнучкості та безпеки використовуйте файли фрагментів для зберігання певних конфігурацій. Створіть такі файли:
- Заголовки безпеки:
Визначте заголовки безпеки для посилення захисту:sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; - Налаштування проксі-сервера:
Оптимізуйте довгі потоки та запобігайте повільним відповідям:sudo nano /etc/nginx/snippets/proxy.confproxy_connect_timeout 60 с; proxy_send_timeout 60 с; proxy_read_timeout 60 с; - Обмеження швидкості:
Зменшення надмірних запитів:sudo nano /etc/nginx/snippets/rate-limit.conflimit_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:
- Завантажте
.debпакет зі сторінки GitHub Cloudflare. - Встановіть пакет:
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
Використання: Вбудовано для довідки. Короткі цитати використовуються для коментарів/оглядів.
Пов’язані публікації в блозі
- Освоєння конфігурацій Nginx для оптимальної продуктивності веб-сервера
- Освоєння конфігурації NGINX: як Serverion забезпечує успіх веб-хостингу B2B
- Перемотування конфігурації NGINX: Serverion відроджує втрачене мистецтво налаштування кешу проксі
- Забута межа конфігурації NGINX: занурення Serverion у мікрокешування FastCGI