Перенаправляйте пользователей, используя nginx в качестве балансировщика нагрузки для экономии пропускной способности

Я недавно купил 4 сервера для своих видео, чтобы выровнять нагрузку. В настоящее время я использую nginx в качестве балансировщика нагрузки, но у меня заканчивается пропускная способность.

Можно ли каким-то образом перенаправить пользователей на один из серверов, чтобы снизить использование полосы пропускания и при этом определить, работает ли сервер?

Это то, что я сейчас использую:

upstream videos {
    server xx.xx.xxx.130:8080;
    server xx.xx.xxx.131:8080;
    server xx.xx.xxx.132:8080;
    server xx.xx.xxx.133:8080;
}

proxy_next_upstream error;

server {
    listen 80;
    server_name www.example.com;

    location / {
        proxy_pass http://videos;
        proxy_redirect off;
        proxy_set_header Host $http_host;
    }
}

1 ответ

Вы можете играть с параметром веса для балансировки полосы пропускания:

upstream videos {
    server xx.xx.xxx.130:8080 weight=5; # high bandwith server
    server xx.xx.xxx.131:8080 weight=5; # high bandwith server
    server xx.xx.xxx.132:8080 weight=3; # middle bandwith server
    server xx.xx.xxx.133:8080 weight=1; # low bandwith server
}

Таким образом, будут отправляться каждые 14 запросов: от 5 до xx.xx.xxx.130 и 131 серверов, от 3 до 132 и от одного до 133.

Подробнее читайте: http://nginx.org/en/docs/http/load_balancing.html

Другие вопросы по тегам