docker nginx-proxy + centos 8 не передает реальный ip адрес клиентам

Установлен docker. Фронт слушает nginx-proxy, который проксирует запросы внутрь на nginx.

Данная конструкция установлена на двух машинах, на одной centos7, там все поднялось и работает.

На второй centos8, сайты работают, запросы проксируются, но передается в запросах ip адрес контейнера nginx-proxy.

Все настройки идентичные.

В логах рабочего nginx-proxy (centos7) виден ip адрес клиента

nginx.1    | site.ru 77.88.5.92 - - [29/Mar/2020:14:21:41 +0000] "GET /264.html HTTP/1.1" 200 10759 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
D kj

В логах nginx-proxy (centos8) идет ip контейнера, половина данных нет

nginx.1    | _ 172.18.0.1 - - [29/Mar/2020:14:03:34 +0000] "GET / HTTP/1.1" 400 157 "-" "-"

Контейнер nginx-proxy собирается в docker-compose.yml

version: '3.0'
services:
    proxy:
      image: jwilder/nginx-proxy
      # image: jwilder/nginx-proxy:alpine
      restart: always

      ports:
        - 80:80
        - 443:443
      volumes:
        - /var/run/docker.sock:/tmp/docker.sock:ro
        - /home/adkondrdo8/docker_site/disshelp.com/docker/nginx/ssl:/etc/nginx/certs
      networks:
        - proxy

    whoami:
      image: jwilder/whoami
      restart: always
      environment:
        - VIRTUAL_HOST=whoami.local
networks:   
  proxy:
    # driver: bridge

На бекэнде в настойках виртуального хоста в разделе server:

set_real_ip_from 172.18.0.0/24;
set_real_ip_from 172.18.0.1;
set_real_ip_from 172.18.0.2;
real_ip_header X-Real-IP;

В centos8 есть особенность в новой подсистеме брандмауэра - nftables, а Docker поддерживает только iptables, может быть в этом загвоздка, при установке не подымался DNS в контейнерах, было решено добавлением правила маскарада

firewall-cmd --zone=public --add-masquerade --permanent

Проверка наличия модуля http_realip_module показывает его присутствие

2>&1 nginx -V | tr -- - '\n' | grep --color realip_module

http_realip_module
stream_realip_module

Ответы (1 шт):

Автор решения: Adkondr

Проблема решена, проблема была в том что сложности работы docker на centos8 ввиду замены iptables, c которой работает docker на nftables. Помогло отключение firewalld c перезагрузкой. Сейчас видимо придется переходит на nftables

→ Ссылка