Как выполнить балансировку нагрузки с помощью nginx

Как выполнить балансировку нагрузки с помощью nginx

Мне нужно использовать сервер как балансировщик нагрузки и веб-сервер одновременно.

Вот мой конфиг nginx для сайта:

upstream load_balancer {
    least_conn;
    server localhost;
        #server srv2.example.com;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name localhost;

    root /var/www;

    index index.php index.html index.htm;

    location / {
        proxy_pass http://load_balancer;
    }

    location ~* \.php$ {
        fastcgi_index   index.php;
            fastcgi_pass    unix:/var/run/php5-fpm.sock;
            include         fastcgi_params;
            fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
}

Можно ли использовать один сервер как балансировщик нагрузки и веб-сервер одновременно? Как это сделать?

Огромное спасибо заранее!

решение1

Да, это возможно;

Вы можете просто создать виртуальный хост с другим портом.

(Load Balancer [Port 80] + Virtualhost [Port 81])Таким образом, по сути, один сервер будет прослушивать два порта: один обслуживает веб-страницу, а другой балансирует нагрузку.

Затем при подключении веб-сайта на сервере к балансировщику нагрузки вы будете использовать IP-адресlocalhost:81

Вы можете создать локальный веб-сайт, набрав:

sudo nano /etc/nginx/sites-available/example.com

Затем вставляем (может потребоваться редактирование по мере необходимости).

 server {
        listen   81;

        root /var/www/example.com/public_html;
        index index.html index.htm;

        server_name example.com;
}

Надеюсь это поможет!

Связанный контент