Nginx. Балансировщик HTTP соединений по нескольким машинам-бэкендам

Материал из Wiki
Версия от 21:52, 9 апреля 2022; Cless (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Предварительные требования

Создаем 2 машины с веб-сервами nginx и доступом по http

http://192.168.199.100

http://192.168.199.200

Настройка

Настраиваем машину-балансировщик 192.168.199.50

yum install -y epel-release

yum install -y nginx php-fpm

nano /etc/nginx/nginx.conf

user nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
   worker_connections  2048;
   use epoll;
}
http {
   include       /etc/nginx/mime.types;
   default_type  application/octet-stream;
   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';
   access_log  /var/log/nginx/access.log  main;
   sendfile        on;
   #tcp_nopush     on;
   keepalive_timeout  65;
   #gzip  on;
   proxy_connect_timeout 600;
   proxy_send_timeout 600;
   proxy_read_timeout 600;
   send_timeout 600;
   client_max_body_size 128m;
   gzip_buffers 16 8k;
   gzip_http_version 1.1;
   gzip_min_length 10;
   gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon application/vnd.ms-fontobject font/opentype application/x-font-ttf;
   gzip_vary on;
   gzip_proxied any;
   gzip_disable msie6;
   include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/vhosts/*.conf;
   
   ###
   # НАС ИНТЕРЕСУЕТ ЭТА СЕКЦИЯ ДЛЯ СОЗДАНИЯ БАЛАНСИРОВКИ
   ###
   
   upstream backend1 {
       server 192.168.199.100;
       server 192.168.199.200;
   }
   server {
       listen 80;
       location / {
           proxy_pass http://backend1;
       }
   }
}

systemctl start nginx

systemctl enable nginx

Проверка

# на http://192.168.199.50 - попадаем на один из серверов

# обновляем страницу - попадаем на другой сервер