Balanceamento de carga Nginx + Tomcat, método de construção de cluster de separação dinâmica e estática

Prefácio

Introdução ao Tomcat
· Foi originalmente desenvolvido por James Duncan Davidson, um arquiteto de software da Sun. Depois que o Tomcat é instalado, os diretórios e arquivos no caminho de instalação são arquivos importantes para usar ou configurar o Tomcat

1. Diretório importante do Tomcat

Insira a descrição da imagem aqui

2. Aplicativo Nginx

2.1 vantagens do nginx

Nginx é um excelente software de servidor HTTP.
Suporta respostas de até 50.000 conexões simultâneas. Tem
recursos poderosos de processamento de recursos estáticos
, operação estável
e consumo muito baixo de recursos do sistema, como memória e CPU.
Atualmente, muitos sites grandes usam servidores Nginx como base
Proxy reverso e balanceador de carga do programa do site final para melhorar a simultaneidade de carga de todo o site

Vantagens
do processamento estático do Nginx · A eficiência do Nginx no processamento de páginas estáticas é muito maior do que a do Tomcat
· Se o Tomcat solicitar 1000 vezes, o Nginx solicitará 6000 vezes,
a taxa de transferência do Tomcat por segundo será de 0,6 M e do Nginx por segundo A taxa de transferência é de 3,6M
· A capacidade do Nginx de lidar com recursos estáticos é 6 vezes maior que a do Tomcat

2.2 Princípios de implementação de balanceamento de carga Nginx

Nginx realiza balanceamento de carga por meio de proxy reverso

Princípio de proxy reverso
Insira a descrição da imagem aqui

Os principais parâmetros da configuração Nginx nome do pool de serviço upstream do proxy reverso
{} Proxy de quatro camadas
Configure o pool de servidores back-end para fornecer dados de resposta
proxy_pass http: // nome do pool de serviços // Módulo proxy para encaminhar solicitações para a
configuração do pool de serviços para encaminhar solicitações de acesso Processamento de servidor para o pool de servidores back-end

nginx suporta proxy de sete camadas

2.3 Princípio de separação estática e dinâmica Nginx

Princípio de separação entre dinâmico e estático Quando o servidor recebe solicitações do cliente, existem recursos estáticos e dinâmicos.Os recursos estáticos são servidos pelo Nginx e os recursos dinâmicos Nginx são encaminhados para o backend.

Insira a descrição da imagem aqui
Vantagens
do processamento estático do Nginx · A eficiência do Nginx no processamento de páginas estáticas é muito maior do que a do Tomcat
· Se o Tomcat solicitar 1000 vezes, o Nginx solicitará 6000 vezes,
a taxa de transferência do Tomcat por segundo será de 0,6 M e do Nginx por segundo A taxa de transferência é de 3,6M
· A capacidade do Nginx de lidar com recursos estáticos é 6 vezes maior que a do Tomcat

3. Configuração do caso

Teste o balanceamento de carga, efeito de separação dinâmica e estática.
Configuração ambiental. Use
Nginx como balanceador de carga, Tomcat como
site de servidor de aplicativos e realize o balanceamento de carga
. Desative o firewall Firewalld.
Instale o pacote de software dependente de Nginx.
Descompacte, compile e instale a
configuração Nginx nginx.conf, adicione o processamento de página estática de localização E adicione a
seção de configuração upstream e o
arquivo de configuração de detecção proxy_pass e inicie o Nginx

A implantação do Tomcat e a construção do site de teste
exigem a implantação de dois servidores Tomcat back-end
. Para testar, configure dois sites diferentes.
Implantação do Tomcat e etapas de construção do site
. Desligue o firewall
. Instale o JDK, configure o ambiente JAVA.
Instale e configure o Tomcat para
criar / web / diretório webapp1, modifique server.xml, altere o diretório de arquivo do site
para / web / webapp1 / no caminho
/ web / webapp1 / para criar uma página de teste index.isp e teste

3.1 Construção do ambiente

Prepare 4 dispositivos,
um servidor nginx para resolução de endereço estático e proxy reverso, para alcançar o controle de balanceamento de carga (NGINX),
dois servidores tomcat para resolução dinâmica e uso de servidor de nó (PC-3, PC-4),
um cliente Acesso à máquina

Preparação do pacote:
Insira a descrição da imagem aqui

3.2 Configuração de caixa de separação dinâmica e estática

3.2.1 Configurar servidor nginx

Compilar e instalar o 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

Crie uma conexão flexível
[root @ nginx nginx-1.12.2] # ln -s / usr / local / nginx / sbin / nginx / usr / local / sbin /

Transferir o serviço para o gerenciamento do sistema

[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
~

Adicionar permissão de execução

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

Iniciar teste de serviço

[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 e TOMCAT em dois servidores de nó

Aqui está um conjunto como exemplo, o mesmo método de instalação para dois conjuntos

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

Modificar variáveis ​​de ambiente

[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

Instale o 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 Configure o nginx para iniciar a separação dinâmica e 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 a configuração

[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 o arquivo da página inicial

[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 o arquivo da página inicial do 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 O cliente acessa 192.168.100.20 e 192.168.100.20/test/index.jsp para testar a separação estática e dinâmica

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

3.2.5 nginx lida com imagens estáticas, TOMcat lida com testes de página dinâmicos

Modifique o arquivo da página inicial do 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 arquivo de configuração nginx

Insira a descrição da imagem aqui
Coloque a imagem 123.jpg neste diretório do site de caminho

[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 Teste, a visita foi bem-sucedida

Insira a descrição da imagem aqui

3.3 Caso de balanceamento de carga

3.3.1 Configurar os arquivos da página inicial de dois gatos

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

Vim index.html

Insira a descrição da imagem aqui

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

Vim index.html

Insira a descrição da imagem aqui

3.3.2 Definir as configurações do diretório do site da página inicial do tomcat (mesma operação para ambos)

Pegue um deles como exemplo

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

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

Insira a descrição da imagem aqui

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

Insira a descrição da imagem aqui

3.3.3 Configurar o arquivo de configuração nginx

Insira a descrição da imagem aqui

3.3.4 Teste de acesso 192.168.100.20

Insira a descrição da imagem aqui
Atualizar, mudar automaticamente para o nó 2

Insira a descrição da imagem aqui

Acho que você gosta

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