/
SureWiki
/
SureBook
Обзор
Документация
Войти
/
SureWiki
/
SureBook
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
topics/Nginx_reverse_proxy.4pda
223 строки
11 KB
Gerasti
renew topic names
03 июн 2026, 22:21
03 июн 2026, 22:21
b669f48
Код
Авторство
О чём код?
[SIZE=4]Установка[/SIZE] [SIZE=3]Установка nginx[/SIZE] [CODE] apt-get install nginx [/CODE] [SIZE=3]Включение автозапуска[/SIZE] [CODE] systemctl enable --now nginx [/CODE] [SIZE=4]Настройка обратного прокси[/SIZE] [QUOTE] Для настройки необходима ip-адресация и работа DNS(или hosts) [/QUOTE] [SIZE=3]Создание файла конфигурации[/SIZE] [CODE] nano /etc/nginx/sites-available.d/some.domain.conf [/CODE] [SIZE=3]Базовая конфигурация обратного прокси[/SIZE] [CODE] server { listen 80; server_name some.domain; location / { proxy_pass http://10.0.0.10:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Connection ""; } } [/CODE] [QUOTE] listen(порт прослушивания); server_name(имя виртуального хоста); location(обработка запросов к корню) [/QUOTE] [QUOTE] proxy_pass(адрес внутреннего веб-приложения); proxy_http_version(версия HTTP-протокола) [/QUOTE] [QUOTE] proxy_set_header Host(передача оригинального заголовка Host); X-Real-IP(реальный IP клиента) [/QUOTE] [QUOTE] X-Forwarded-For(цепочка IP-адресов); X-Forwarded-Proto(протокол http или https); Connection(управление соединением) [/QUOTE] [SIZE=3]Конфигурация для нескольких приложений[/SIZE] [CODE] server { listen 80; server_name app1.some.domain; location / { proxy_pass http://10.0.0.10:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 80; server_name app2.some.domain; location / { proxy_pass http://10.0.0.20:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } [/CODE] [QUOTE] app1.some.domain перенаправляет на 10.0.0.10:8080; app2.some.domain перенаправляет на 10.0.0.20:8080 [/QUOTE] [SIZE=3]Конфигурация с SSL-сертификатом[/SIZE] [CODE] server { listen 443 ssl; server_name some.domain; ssl_certificate /etc/letsencrypt/some.domain/cert.cer; ssl_certificate_key /etc/letsencrypt/some.domain/cert.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { proxy_pass http://10.0.0.10:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } [/CODE] [QUOTE] listen 443 ssl(прослушивание порта 443 с поддержкой SSL/TLS) [/QUOTE] [QUOTE] ssl_certificate(путь к SSL-сертификату); ssl_certificate_key(путь к приватному ключу) [/QUOTE] [QUOTE] ssl_protocols(разрешенные версии TLS); ssl_prefer_server_ciphers(приоритет шифров сервера) [/QUOTE] [SIZE=3]Конфигурация с таймаутами[/SIZE] [CODE] server { listen 80; server_name some.domain; location / { proxy_pass http://10.0.0.10:8080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 5s; proxy_send_timeout 30s; proxy_read_timeout 30s; } } [/CODE] [QUOTE] proxy_connect_timeout(время ожидания подключения к backend); proxy_send_timeout(время отправки запроса) [/QUOTE] [QUOTE] proxy_read_timeout(время ожидания ответа от backend) [/QUOTE] [SIZE=3]Создание символической ссылки[/SIZE] [CODE] ln -s /etc/nginx/sites-available.d/some.domain.conf /etc/nginx/sites-enabled.d/ [/CODE] [SIZE=4]Проверка[/SIZE] [SIZE=3]Проверка синтаксиса конфигурации[/SIZE] [CODE] nginx -t [/CODE] [SIZE=3]Применение настроек[/SIZE] [CODE] systemctl restart nginx [/CODE] [QUOTE] можно использовать systemctl reload nginx [/QUOTE] [SIZE=3]Проверка открытых портов[/SIZE] [CODE] ss -tulpn | grep nginx [/CODE] [SIZE=3]Проверка доступности backend-сервера[/SIZE] [CODE] curl -I http://10.0.0.10:8080 [/CODE] [SIZE=3]Просмотр логов nginx[/SIZE] [CODE] journalctl -u nginx --no-pager [/CODE]