¡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.
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
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
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
Desactiva el acceso anónimo
Agregar rango de puertos
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
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.
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