Nginx implementa equilibrio de carga y servidor de archivos

¡Como tú que amas la programación!
Aprenda los cursos prácticos de SpringBoot https://edu.csdn.net/course/detail/31433
Aprenda los cursos de introducción a SpringCloud https://edu.csdn.net/course/detail/31451


Visión general

Este artículo presentará el servidor Nginx muy popular. Entenderemos los conceptos de proxy inverso y equilibrio de carga, y luego dominaremos la instalación y configuración de Nginx. Puede usar el archivo de configuración Nginx + Vsftp para cargar el servidor y realizar la configuración de carga Equilibrio.

1. Introducción a Nginx

Nginx es un servidor proxy inverso y HTTP ligero, de alto rendimiento, alta estabilidad y concurrencia. En la actualidad, es muy utilizado en empresas de Internet, como Baidu, JD, Sina, Netease, Tencent, Taobao, etc.

1.1 ¿Qué puede hacer Nginx?

Las principales funciones de Nginx son:

  • servidor http

    Nginx se usa generalmente para implementar recursos estáticos y implementarlos por separado de los servidores (como Tomcat) que implementan recursos dinámicos para lograr la separación de dinámica y estática y maximizar el rendimiento del servidor.

  • Proxy inverso

    Servidor proxy en segundo plano, enrutamiento flexible a través de la configuración

  • Balanceo de carga

    Una gran cantidad de solicitudes de usuarios se distribuyen uniformemente a varios servidores para mejorar la capacidad de carga del sistema.

1.2 Proxy directo / inverso

Un papel importante de Nginx es un proxy inverso, por lo que primero debemos averiguar qué es un proxy inverso.

Inserte la descripción de la imagen aquí

La diferencia entre el proxy directo y el proxy inverso es:

  • Reenviar proxy, el proxy es el cliente

    Por ejemplo, los usuarios no pueden acceder directamente al servidor interno de la empresa, pero pueden acceder indirectamente a través del servidor proxy VPN, que es una especie de proxy de reenvío.

  • Proxy inverso, el proxy es el servidor

    Por ejemplo: el negocio de Taobao se implementa en diferentes servidores, como servidores de productos básicos, servidores comerciales, servidores de pedidos, etc. Cuando los usuarios acceden a Taobao, las solicitudes se envían a diferentes servidores back-end a través de Nginx.

2. Instalación de Nginx

2.1 Instalar Nginx en Linux

1) Instalar bibliotecas dependientes

yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

2) Descarga Nginx

cd /usr/local
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

3) Descomprimir

tar -zxvf nginx-1.12.0.tar.gz

4) Realizar la configuración predeterminada

cd nginx-1.12.0
./configure

5) Compilar e instalar

make
make install

6) Iniciar nginx

Después de compilar e instalar, aparecerá el directorio nginx

cd /usr/local/nginx/sbin/
./nginx 

Otros comandos:

停止
./nginx -s stop
退出
./nginx -s quit
重启
./nginx -s reload

7) Puerto abierto 80

firewall-cmd --zone=public --add-port=80/tcp --permanent 

Abra el navegador, ingrese la dirección IP, aparece la página de Nginx

Inserte la descripción de la imagen aquí

2.2 Instalar Nginx en Windows

1) Vaya al sitio web oficial para descargar Nginx

http://nginx.org/en/download.html

2) Descomprima y haga doble clic en nginx.exe

Inserte la descripción de la imagen aquí

3. Servidor de archivos de compilación Nginx + Vsftp

Nginx como servidor http tiene un rendimiento muy alto para implementar recursos estáticos. El componente Vsftp en Linux puede realizar la transferencia de archivos. Nginx + Vsftp se pueden combinar para construir un servidor de archivos de alto rendimiento para realizar la función de carga de archivos del proyecto.

3.1 Instalar vsftp

1) Instale el componente vsftp

yum -y install vsftpd

2) Agregar usuario de ftp

useradd ftpuser

La ruta predeterminada después de iniciar sesión es / home / ftpuser.

3) Agregar contraseña al usuario de ftp

passwd ftpuser

4) Modificar la configuración

El archivo de configuración está en /etc/vsftpd/vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

Cambio de configuracion

Inserte la descripción de la imagen aquí

Desactiva el acceso anónimo

Inserte la descripción de la imagen aquí

Agregar rango de puertos

Inserte la descripción de la imagen aquí

5) Reinicie vsftp

service vsftpd restart

6) Configurar el arranque

chkconfig vsftpd on

7) Modificar los permisos de los usuarios

chown ftpuser /home/ftpuser
chmod 777 -R /home/ftpuser

3.2 Configuración de Nginx Vsftp

1) Cree un nuevo directorio para guardar imágenes

cd /home/ftpuser/
mkdir www
cd www
mkdir images
cd images
pwd
/home/ftpuser/www/images

2) Configurar Nginx

El archivo de configuración de nginx es nginx / conf / nginx.conf

Agregar ubicación al servidor

location /images {
	root  /home/ftpuser/www/;
	autoindex on;
}  

3) Reinicie nginx

./nginx -s reload

Ingrese http: // dirección / imágenes del servidor en el navegador, puede ver la lista de archivos en el directorio de carga

Inserte la descripción de la imagen aquí

4. Equilibrio de carga de Nginx

4.1 Concepto de equilibrio de carga

Cada servidor tiene un límite superior en la cantidad de solicitudes que se pueden procesar. Si se excede este límite superior, puede bloquearse. ¿Puede la implementación de algunos servidores más resolver este problema?

No necesariamente. Suponiendo que todas las solicitudes se hagan a un servidor, aún se bloquearán.

El equilibrio de carga es una tecnología informática que puede distribuir las solicitudes de los usuarios a cada servidor del clúster de acuerdo con un determinado algoritmo de equilibrio de carga, a fin de evitar sobrecargar un solo servidor y mejorar la capacidad de procesamiento del clúster de servidores. Velocidad de respuesta, para lograr el óptimo configuración de los recursos del servidor.

Inserte la descripción de la imagen aquí

El equilibrio de carga se puede lograr a través del cliente, el servidor y el hardware. Nginx es una tecnología de equilibrio de carga del lado del servidor.

4.2 Configuración de equilibrio de carga

1) Configuración del servidor

Para la comodidad de las pruebas, puede iniciar varios proyectos SpringBoot en una computadora y simular varios servidores por distinción de puerto

RestController
public class HelloController
{
    @GetMapping("/hello")
    public String hello(){
        return "Hello 8081";
    }
}

2) Modificar la configuración de Nginx

Agregue upstream en http, configure la lista de servidores, myservers es el nombre de la lista, y cada servidor dentro es la IP y el puerto del servidor

upstream myservers { 
	server 192.168.0.113:8081;
	server 192.168.0.113:8082;
	server 192.168.0.113:8083;
}

Agregar servidor, configurar el agente para enviar solicitudes a mis servidores para su procesamiento

server {
        listen       8088;
        server_name  localhost;
        charset utf-8;
        location / {
			proxy_pass http://myservers;
        }
}

3) Reinicie Nginx

./nginx -s reload

4) Prueba

Cuando el navegador probó el puerto 8088 para acceder a la interfaz de saludo, se encontró que la llamada de la interfaz era un sondeo.

La potencia de procesamiento de cada servidor es diferente y el peso se puede configurar para que el servidor capaz pueda manejar más solicitudes

upstream myservers { 
	server 192.168.0.113:8081 weight=1;
	server 192.168.0.113:8082 weight=2;
	server 192.168.0.113:8083 weight=1;
}

Fin

Lo anterior es el uso básico de Nginx. Si lo encuentra útil, igual que él. Si tiene alguna pregunta, también pueden comunicarse juntos.


Si necesita aprender otros conocimientos de Java, haga clic aquí Conocimiento ultra detallado de Java Resumen

Supongo que te gusta

Origin blog.csdn.net/u013343114/article/details/112170264
Recomendado
Clasificación