Silicon Valley nginx tutorial-5 nginx configuración ejemplo-balanceo de carga

Al aumentar el número de servidores y luego distribuir la solicitud a cada servidor, la solicitud original se concentra en un solo servidor en lugar de distribuir la solicitud a varios servidores y distribuir la carga a diferentes servidores, lo que llamamos Equilibrio de carga.
Efecto de realización: ingrese la dirección en la barra de direcciones del navegador: http://172.16.0.1/edu/a.html, promedio de los puertos 8080 y 8081

1. Preparación

1. Prepare 2 servidores tomcat, uno 8080 y otro 8081
2. En el directorio webapps de 2 tomcat, cree un archivo.html para probar
8080 / a.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
<h1>8080</h1>
</body>
</html>

8081 / a.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
<h1>8081</h1>
</body>
</html>

2. Configure nginx

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    upstream myserver {  #1.进行负载均衡服务器的列表
        server 172.168.0.1:8080;
        server 172.168.0.1:8081;
    }
    server {
        listen       80;
        server_name  172.168.0.1;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
	        proxy_pass	http://myserver; # 加入映射的规则
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

    server {
	listen	9001;
	server_name	172.168.0.1;
	
	location ~ /edu/ {
		proxy_pass	http://127.0.0.1:8080;
	}
	location ~ /vod/ {
		proxy_pass	http://127.0.0.1:8081;
	}
    }
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

3. Verificación

Visitas frecuentes a http://111.229.251.86/edu/a.html, los resultados devueltos son 8080 y 8081

4. Reglas de equilibrio de carga

Con el crecimiento explosivo de la información de Internet, el equilibrio de carga (balanceo de carga) ya no es un tema extraño. Como su nombre lo indica, el equilibrio de carga es llevar la carga a diferentes unidades de servicio, no solo para garantizar la disponibilidad del servicio, sino también para garantizar que la respuesta sea lo suficientemente rápida como para brindar a los usuarios una buena experiencia. El rápido aumento en el acceso y el tráfico de datos ha generado una variedad de productos de equilibrio de carga. Muchos equipos profesionales de equilibrio de carga ofrecen buenas funciones, pero son caros. Esto hace que el software de carga sea popular. Nginx es uno de ellos. Hay nginx, LVS, Haproxy y otros servicios en Linux, que pueden mejorar el servicio de equilibrio de carga, y nginx proporciona los siguientes modos de distribución (estrategias).

4.1 Sondeo (predeterminado)

Cada solicitud se asigna a diferentes servidores de fondo uno por uno en orden cronológico. Si el servidor de fondo está inactivo, se puede eliminar automáticamente.

4.2 peso

el peso representa el peso, que es 1. Por defecto, cuanto mayor sea el peso, más clientes se asignan.
Especifique la probabilidad de sondeo, el peso es proporcional a la probabilidad de acceso, utilizado para un rendimiento desigual del servidor de fondo.

upstream server_pool{
    server    172.168.0.1:8080    weight=10;
    server    172.168.0.1:8081    weight=5;
}

4.3 ip_hash

Cada solicitud se asigna de acuerdo con el resultado hash de la IP de acceso, de modo que cada visitante accede de manera fija a un servidor de fondo, que puede resolver el problema de la sesión. Por ejemplo

upstream server_pool{
    ip_hash;
    server    172.168.0.1:8080;
    server    172.168.0.1:8081;
}

4.4 manera justa

Las solicitudes se distribuyen de acuerdo con el tiempo de respuesta del servidor de fondo y se da prioridad a los tiempos de respuesta cortos.

upstream server_pool{
    server    192.168.5.21:8080;
    server    192.168.5.21:8081;
    fair;
}

Visite el sitio web, distribución de equilibrio de carga a 8080 y 8081. Visite 8080 primero y luego 8081. Si tiene un tiempo de respuesta corto, déselo primero.

Supongo que te gusta

Origin www.cnblogs.com/csj2018/p/12675655.html
Recomendado
Clasificación