Инструменты пользователя

Инструменты сайта


vji:trusted_proxy:start

Это старая версия документа!


Реализация Trusted Proxy Chain для X-Forwarded-For в Nginx

1 Подготовка окружения
2 Создание всех необходимых файлов
3 Проверка структуры файлов

  • Проверьте, что все файлы созданы
ls -la
  • Должны увидеть:
-rw-r--r-- app.py
-rw-r--r-- docker-compose.yml
-rw-r--r-- Dockerfile
-rw-r--r-- requirements.txt
drwxr-xr-x nginx/
  • Проверьте содержимое директории nginx
ls -la nginx/
  • Должны увидеть:
-rw-r--r-- nginx1.conf
-rw-r--r-- nginx2.conf
-rw-r--r-- nginx3.conf

4 Запуск стенда
4.1 Сборка и запуск контейнеров

  • Первый запуск (сборка образов)
docker-compose up -d --build

Что означает каждая опция:
up - запуск контейнеров
-d - detached mode (в фоновом режиме)
–build - пересобрать образы перед запуском

4.2 Проверка статуса контейнеров
Просмотр работающих контейнеров

docker-compose ps

Должны увидеть 4 контейнера со статусом «Up»

4.3 Проверка логов (если нужно отладить)
Логи всех контейнеров

docker-compose logs

Логи конкретного контейнера

docker-compose logs nginx1
docker-compose logs app

Логи в реальном времени

docker-compose logs -f

5: Тестирование базовой функциональности
5.1 Быстрая проверка (ручной тест)

Проверка, что приложение отвечает через nginx1

curl http://localhost:8081/

Ожидаемый ответ:\ {«message»:«X-Forwarded-For header received»,«value»:«172.x.x.x»,«client_ip»:«172.x.x.x»,…} 5.2 Проверка всех цепочек

Проверка прямой маршрут

curl -s http://localhost:8081/ | jq '.value'

Проверка цепочки из двух прокси

curl -s http://localhost:8081/via2/ | jq '.value'

Проверка цепочки из трех прокси

curl -s http://localhost:8081/via2-3/ | jq '.value'

5.3 Проверка защиты от подделки
Попытка подменить IP

curl -s -H "X-Forwarded-For: 1.2.3.4" http://localhost:8081/ | jq '.value'

Должен вернуться реальный IP, а не 1.2.3.4

vji/trusted_proxy/start.1780639548.txt.gz · Последнее изменение: 2026/06/05 06:05 — vji

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki