Назад | Перейти на главную страницу

Разрешение DNS Nginx для балансировщика нагрузки PHP

В нашей конфигурации AWS есть сервер nginx, указывающий все запросы PHP на ELB с несколькими серверами PHP в нем. Когда сам ELB масштабируется, мы теряем соединение в течение следующих нескольких часов, поскольку эти старые IP-адреса используются повторно. При перезапуске серверов nginx IP-адреса ELB повторно кэшируются, и все возвращается в исходное состояние. Довольно стандартный материал.

Решение, которое я нашел повсюду, заключается в том, что мне нужно включить resolver чтобы разрешить повторное разрешение, пока сервер работает. Проблема, с которой я сталкиваюсь, двоякая:

  1. Моя текущая конфигурация не работает.
  2. Я не знаю, как правильно его протестировать, не дожидаясь, пока он выйдет из строя.

Вот моя текущая конфигурация:

http {
    resolver 10.0.0.2 valid=10s;
    ...

    server {
        ...

        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            set $route "php:9000";
            fastcgi_pass $route;
        }
    }
}

В статье, которую я нашел, упоминается использование tcpdump для просмотра DNS-запросов, но я ничего не вижу вообще, и определенно не каждые 10 секунд, как написано. Может ли это быть связано с использованием fastcgi_pass вместо proxy_pass? Я что-то еще упускаю?