Equilibrio de carga Nginx + Tomcat, método de construcción de clúster de separación dinámica y estática

Prefacio

Introducción a Tomcat
· Fue desarrollado originalmente por James Duncan Davidson, un arquitecto de software de Sun. Después de instalar Tomcat, los directorios y archivos bajo la ruta de instalación son archivos importantes para usar o configurar Tomcat

1. Directorio importante de Tomcat

Inserte la descripción de la imagen aquí

2. Aplicación Nginx

2.1 ventajas de nginx

Nginx es un excelente software de servidor HTTP.
Admite respuestas de hasta 50.000 conexiones simultáneas. Tiene
potentes capacidades de procesamiento de recursos estáticos
, funcionamiento estable
y muy bajo consumo de recursos del sistema, como memoria y CPU.
En la actualidad, muchos sitios web grandes utilizan servidores Nginx como respaldo.
Proxy inverso y equilibrador de carga del programa del sitio web final para mejorar la simultaneidad de carga de todo el sitio

Ventajas
del procesamiento estático de Nginx · La eficiencia de Nginx en el procesamiento de páginas estáticas es mucho mayor que la de Tomcat
· Si Tomcat solicita 1000 veces, Nginx solicita 6000 veces,
el rendimiento de Tomcat por segundo es de 0.6M y el de Nginx por segundo El rendimiento es de 3,6 millones
· La capacidad de Nginx para manejar recursos estáticos es 6 veces mayor que la de Tomcat

2.2 Principios de la implementación del equilibrio de carga de Nginx

Nginx realiza el equilibrio de carga a través del proxy inverso

Principio de proxy inverso
Inserte la descripción de la imagen aquí

Los parámetros principales de la configuración de Nginx proxy inverso
nombre del grupo de servicios ascendentes {} Proxy de cuatro capas
Configure el grupo de servidores back-end para proporcionar datos de respuesta
proxy_pass http: // nombre del grupo de servicios // Módulo proxy para reenviar solicitudes a la
configuración del grupo de servicios para reenviar solicitudes de acceso Procesamiento del servidor para el grupo de servidores back-end

nginx admite proxy de siete capas

2.3 Principio de separación dinámica y estática de Nginx

Principio de separación de dinámicos y estáticos Cuando el servidor recibe solicitudes del cliente, existen tanto recursos estáticos como dinámicos, los recursos estáticos son atendidos por Nginx y los recursos dinámicos Nginx son reenviados al backend.

Inserte la descripción de la imagen aquí
Ventajas
del procesamiento estático de Nginx · La eficiencia de Nginx en el procesamiento de páginas estáticas es mucho mayor que la de Tomcat
· Si Tomcat solicita 1000 veces, Nginx solicita 6000 veces,
el rendimiento de Tomcat por segundo es de 0.6M y el de Nginx por segundo El rendimiento es de 3,6 millones
· La capacidad de Nginx para manejar recursos estáticos es 6 veces mayor que la de Tomcat

3. Configuración de la carcasa

Pruebe el equilibrio de carga, el efecto de separación dinámico y estático.
Configuración ambiental. Utilice
Nginx como equilibrador de carga, Tomcat como
sitio del servidor de aplicaciones y realice el equilibrio de carga
. Desactive el firewall Firewalld.
Instale el paquete de software dependiente de Nginx.
Descomprima, compile e instale la
configuración de Nginx nginx.conf, agregue el procesamiento de páginas estáticas de ubicación Y agregue la
sección de configuración ascendente y el
archivo de configuración de detección proxy_pass e inicie Nginx

La implementación de Tomcat y la construcción de sitios web de prueba
requieren la implementación de dos servidores Tomcat back-end
. Para realizar la prueba, configure dos sitios web diferentes.
Implementación de Tomcat y pasos de construcción del sitio web
. Apague el firewall
. Instale JDK, configure el entorno JAVA.
Instale y configure Tomcat para
crear / web / Directorio Webapp1, modifique server.xml, cambie el directorio de archivos del sitio web
a / web / webapp1 / en la ruta
/ web / webapp1 / para crear una página de prueba index.isp y pruebe

3.1 Construcción ambiental

Prepare 4 dispositivos,
un servidor nginx para resolución de direcciones estáticas y proxy inverso, para lograr el control de equilibrio de carga (NGINX),
dos servidores tomcat para resolución dinámica y uso de servidor de nodo (PC-3, PC-4),
un cliente Acceso a la máquina

Preparación del paquete:
Inserte la descripción de la imagen aquí

3.2 Configuración de caja de separación dinámica y estática

3.2.1 Configurar el servidor nginx

Compile e instale nginx

[root@nginx ~]# systemctl stop firewalld
[root@nginx ~]# setenforce 0
setenforce: SELinux is disabled
[root@nginx ~]# yum -y install gcc \
> gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl \
> zlib-devel \
> pcre

[root@nginx nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
[root@nginx nginx-1.12.2]# tar zxvf nginx-1.12.2.tar.gz
[root@nginx nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module     //统计模块
[root@nginx nginx-1.12.2]# make && make install

Cree una conexión suave
[root @ nginx nginx-1.12.2] # ln -s / usr / local / nginx / sbin / nginx / usr / local / sbin /

Entregar el servicio a la administración systemctl

[root@nginx nginx-1.12.2]#  vim /etc/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -S HUP $MAINPID
ExecStop=/usr/bin/kill -S QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
~

Agregar permiso de ejecución

[root@nginx nginx-1.12.2]# chmod 754 /etc/systemd/system/nginx.service

Iniciar prueba de servicio

[root@nginx nginx-1.12.2]# systemctl start nginx.service


[root@nginx nginx-1.12.2]# netstat -ntap | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      19171/nginx: master

3.2.2 Instale JDK y TOMCAT en dos servidores de nodo

Aquí hay un conjunto como ejemplo, el mismo método de instalación para dos conjuntos

[root@pc-3 opt]# tar -zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local

Modificar variables de entorno

[root@pc-3 opt]# vim /etc/profile
加入4行
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${
    
    JAVA_HOME}/jre
export CLASSPATH=.:${
    
    JAVA_HOME}/lib:${
    
    JRE_HOME}/lib
export PATH=${
    
    JAVA_HOME}/bin:$PATH
[root@pc-3 opt]# source /etc/profile

Instalar tomcat

[root@pc-3 opt]# tar -zxvf apache-tomcat-8.5.16.tar.gz  -C /usr/local
[root@pc-3 opt]# cd /usr/local
[root@pc-3 local]# mv apache-tomcat-8.5.16/ tomcat
[root@pc-3 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin
[root@pc-3 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin

3.2.3 Configurar nginx para iniciar la separación dinámica y estática

[root @ nginx conf] # vim nginx.conf

添加此配置.......................
以JSP 结尾的 动态请求都指向 192.168.100.38080服务器
 location ~.*.jsp$ {
    
    
          proxy_pass http://192.168.100.3:8080;
          proxy_set_header HOST $host;
  }


Verifique la configuración

[root@nginx conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax isok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Configurar archivo de página de inicio

[root@nginx conf]# vim /usr/local/nginx/html/index.html
<h1> this is 静态页面</h1>
<meta http-equiv="content-type" content="text/html;charset=utf-8">

Configurar el archivo de la página de inicio de tomcat

Vim /usr/local/tomcat/webapps/test/index.html

<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>
 <head>
    <title>JSP test1 page</title>
 </head>
 <body>
    <div> 这是动态页面</div>
 </body>
</html>

3.2.4 El cliente accede a 192.168.100.20 y 192.168.100.20/test/index.jsp para probar la separación dinámica y estática

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3.2.5 nginx maneja imágenes estáticas, TOMcat maneja pruebas de página dinámicas

Modificar el archivo de la página de inicio de tomcat

<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
    <title>JSP test1 page</title>
 </head>
 <body>
    <div> 这是动态页面</div>
   <img src="123.jpg"/>
 </body>
</html>
~

Modificar el archivo de configuración de nginx

Inserte la descripción de la imagen aquí
Coloque la imagen 123.jpg en este directorio del sitio de ruta

[root@nginx ~]# cd /usr/local/nginx/html/
[root@nginx html]# mkdir test
[root@nginx html]# cd test
[root@nginx test]# rz -E
rz waiting to receive.
[root@nginx test]# ls
123.jpg
[root@nginx test]# pwd
/usr/local/nginx/html/test
[root@nginx test]#

3.2.6 Prueba, la visita es exitosa

Inserte la descripción de la imagen aquí

3.3 Caso de equilibrio de carga

3.3.1 Configurar los archivos de la página de inicio de dos tomcats

[root@pc-3 examples]# cd /usr/local/tomcat/webapps/
[root@pc-3 webapps]# mkdir new

Vim index.html

Inserte la descripción de la imagen aquí

[root@pc-4 examples]# cd /usr/local/tomcat/webapps/
[root@pc-4 webapps]# mkdir new

Vim index.html

Inserte la descripción de la imagen aquí

3.3.2 Configurar los ajustes del directorio del sitio de la página de inicio de tomcat (la misma operación para ambos)

Toma uno de ellos como ejemplo

[root@pc-4 conf]# vim server.xml
添加此行

<Context path="" docBase="new"  reloadable="true"/>    //new 为默认读取的站点目录

Inserte la descripción de la imagen aquí

[root@pc-4 conf]# vim web.xml

Inserte la descripción de la imagen aquí

3.3.3 Configurar el archivo de configuración de nginx

Inserte la descripción de la imagen aquí

3.3.4 Acceder a la prueba 192.168.100.20

Inserte la descripción de la imagen aquí
Actualizar, cambiar automáticamente al nodo 2

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/BIGmustang/article/details/108413124
Recomendado
Clasificación