• Mikrotik и странности с DNS (циклические ошибки резолвинга), как решить?

    @alexkuzko Автор вопроса
    Много, это всего-то десяток - фактически сборка докер-виртуалок через docker-compose это всегда приключение.
    Кеш по-умолчанию стоит 2 Мб (т.е. я и 1 и 2 пробовал, и больше тоже), он не забивается, да и TTL я специально уменьшал до 1 минуты.

    На докере это ярче всего выражено т.к. ошибка является фатальной, при обычной работе это выражается в иногда залипших процессах в браузере (помогает F5) и т.п.

    P.S. Как мне ни нравится Mikrotik, но DNS и правда там корявый ;(
  • Nginx: proxy_protocol + обычное соединения + X-Real-IP header, как заставить работать совместно?

    @alexkuzko Автор вопроса
    Dmitry MiksIr: я дошел до этапа когда у меня работают виды 1 (HAProxy to Nginx) и 3 (Direct Nginx) с такой конструкцией:
    set_real_ip_from 1.2.3.4/24; # ip of the HAProxies
    real_ip_header proxy_protocol;
    # dynamic address for further X-Real-IP header passed to backend
    map $proxy_protocol_addr $real_ip_addr {
    default $remote_addr;
    ~"\." $proxy_protocol_addr;
    }
    proxy_set_header X-Real-IP $real_ip_addr;

    Вот эта дикая конструкция с map работает, а если просто попытаться использовать $proxy_protocol_addr, то нет, т.к. при его отсутствии (соединение напрямую) переменная пустая и X-Real-IP также становится пустым и не передается на бекенд.

    Если есть вариант лучше - с радостью приму.

    По поводу второго типа проксирования (Nginx to Nginx) - тут пока все грустно. Nginx еще не умеет корректно добавлять PROXY Protocol, он может его обрабатывать и только. Т.е. я пока не могу надежно передать корректный remote ip на второй Nginx. Если пытаться обрабатывать некий кастомный заголовок дополнительным map'ом, то это еще один overhead, плюс его уже можно подменить, зная как он называется.
  • Nginx: proxy_protocol + обычное соединения + X-Real-IP header, как заставить работать совместно?

    @alexkuzko Автор вопроса
    Dmitry MiksIr: помимо этого еще и ssl offload на haproxy придется вкручивать, т.е. опять же сертификаты на него ставить - вы это наверное не приняли во внимание?
  • Nginx: proxy_protocol + обычное соединения + X-Real-IP header, как заставить работать совместно?

    @alexkuzko Автор вопроса
    1) Это не вариант т.к. нужно минимизировать задержку, поэтому и нужно TCP проксирование
    2) Это резервный способ - создавать доп.вирт. хосты. Но у него есть пара подводных камней из-за того что глобально у нас будут разные настройки для real_ip и проксируемого X-Real-IP...