Nginx는 UDP 로드 밸런싱에서 연결할 수 없는 업스트림 서버로 계속 전송합니다.

Nginx는 UDP 로드 밸런싱에서 연결할 수 없는 업스트림 서버로 계속 전송합니다.

Nginx를 사용하여 udp syslog 소스에서 logstash로의 트래픽 로드 밸런싱을 수행합니다.

구성:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
worker_rlimit_nofile 1000000;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

    include /etc/nginx/conf.d/*.conf;

#UDP syslog load balancing
stream {

    server {
        listen     514 udp;
        proxy_pass logstash_servers;
        proxy_timeout   1s;
        proxy_responses 0;
        proxy_bind $remote_addr transparent;
    }

    upstream logstash_servers {
        server 192.168.2.90:514 fail_timeout=10s;
        server 192.168.2.95:514 fail_timeout=10s;
    }


}

잘 작동하지만 업스트림 Logstash 서버 중 하나가 다운되면 Nginx는 이를 고려하지 않고 나머지 업스트림 Logstash 서버에서 메시지의 절반을 받습니다.

하나의 Logstash 서버가 다운되면 Nginx에게 나머지 Logstash 서버만 사용하도록 어떻게 지시합니까?

관련 정보