Balanceamento de carga Nginx + Tomcat + separação dinâmica e estática

Visão geral do Tomcat

O servidor Tomcat é um servidor de aplicativos da Web gratuito e de código aberto, que é um servidor de aplicativos leve. É comumente usado em sistemas de pequeno e médio porte e onde não há muitos usuários simultâneos. É a primeira escolha para desenvolver e depurar programas JSP. Para um iniciante, pode-se pensar que quando um servidor Apache é configurado em uma máquina, ele pode ser usado para responder a uma solicitação de acesso à página HTML (um aplicativo sob a linguagem de marcação universal padrão). Na verdade, o Tomcat é uma extensão do servidor Apache, mas é executado de forma independente em tempo de execução, portanto, quando você executa o tomcat, ele realmente é executado como um processo separado do Apache.

Visão geral do Ngiinx

Nginx é um servidor web / servidor proxy reverso leve e servidor proxy de e-mail (IMAP / POP3), lançado sob o protocolo semelhante ao BSD. Suas características são que ele ocupa menos memória e tem fortes recursos de simultaneidade. Na verdade, os recursos de simultaneidade do nginx têm um desempenho melhor no mesmo tipo de servidor da Web. Os usuários da China continental de sites nginx incluem: Baidu, JD, Sina, NetEase, Tencent, Taobao, etc.

Recursos

  • Suporta até 50.000 respostas de conexão simultâneas
  • Possui poderosos recursos de processamento de recursos estáticos
  • correr suavemente
  • Baixo uso de recursos de hardware

Princípio de implementação de balanceamento de carga Nginx

Diagrama esquemático dos
Insira a descrição da imagem aquiparâmetros de configuração Ngxin

pool de servidores upstream {}

  • Depois de configurar o servidor back-end, deixe-o fornecer a si mesmo os dados de resposta
    proxy_pass http: // endereço do servidor
  • Configure o processamento do servidor que encaminha a solicitação de acesso ao pool de servidores back-end

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

A taxa de serviço recebe a solicitação do cliente. Os recursos estáticos dos amigos da base também têm recursos dinâmicos. Os recursos estáticos são fornecidos pelo nginx, e os recursos dinâmicos são encaminhados pelo nginx ao servidor back-end para fornecer serviços.

Vantagens de nginx processar páginas estáticas em comparação com tomcat

  • O Nginx é muito mais eficiente no processamento de páginas estáticas do que o Tomcat
  • Se Tomcat solicitar 1000 vezes, Nginx solicitará 6000 vezes
  • O Tomcat tem uma taxa de transferência de 0,6 M por segundo e o Nginx tem uma taxa de transferência de 3,6 M por segundo
  • A capacidade do Nginx de lidar com recursos estáticos é 6 vezes maior do que o Tomcat

pode vir! Mostrar! !

ip do serviço nginx: 20.0.0.11
cat01: 20.0.0.3
cat02: 20.0.0.4

Experiment①

Construir servidor Nginx

安装环境依赖包
[root@nginx bao]# yum -y install \
> pcre-devel \
> zlib-devel \
> gcc gcc-c++ \
> make
[root@nginx bao]# useradd -M -s /sbin/nologin nginx
[root@nginx bao]# tar zxvf nginx-1.12.2.tar.gz
[root@nginx bao]# cd nginx-1.12.2/
[root@nginx nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module \  ##统计模块
> --with-http_gzip_static_module \  ##压缩模块
> --with-http_flv_module			##视频模块
[root@nginx nginx-1.12.2]# make && make install
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

Editar arquivo de configuração

[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
    #gzip  on;   ##找到这行,在下面添加
        upstream catserver {
    
              ##设置节点服务器,你们做的时候名字起的正规点啊哈哈哈
                        server 20.0.0.3:8080 weight=1;  ##指向cat01 IP,weight指的是权重
                        server 20.0.0.4:8080 weight=1;  ##看上面自己理解吧
                    }
    server {
    
    
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
    
    
            root   html;
            index  index.html index.htm;
        }
        location ~.*.jsp$ {
    
      ##往下加,匹配到以 jsp 结尾的网页再两台节点服务器中轮询          
          proxy_pass http://catserver;
        }
[root@nginx nginx-1.12.2]# systemctl stop firewalld
[root@nginx nginx-1.12.2]# setenforce 0

Construir servidor Tomcat

Instale e configure
duas operações gerais do tomcat

[root@cat01 bao]# tar zxvf jdk-8u91-linux-x64.tar.gz
[root@cat01 bao]# mv jdk1.8.0_91/ /usr/local/
[root@cat01 bao]# vim /etc/profile
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@cat01 bao]# source /etc/profile
[root@cat01 bao]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

[root@cat01 bao]# tar zxvf apache-tomcat-8.5.16.tar.gz
[root@cat01 bao]# mv apache-tomcat-8.5.16 /usr/local/tomcat
[root@cat01 bao]# cd /usr/local/tomcat/
[root@cat01 tomcat]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin
[root@cat01 tomcat]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
[root@cat01 bao]# mkdir -p /web/cat01 
[root@cat01 bao]# vim /web/cat01/index.jsp   ##cat02 改成 /web/cat02
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
    <title>CAT01 web</title>
 </head>
 <body>
    <% out.println("This is CAT01.");%>   ##另一台配置 This is CAT02.
 </body>
</html>

[root@cat01 bao]# vim /usr/local/tomcat/conf/server.xml
148       <Host name="localhost"  appBase="webapps"   
149             unpackWARs="true" autoDeploy="true">  ##主配置文件里找到这个服字段,在下面添加,意思差不多是重新定义主页位置
150       <Context docBase="/web/cat01" path="" reloadable="false">
151       </Context>
[root@cat01 bao]# startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@cat01 bao]# netstat -ntap |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      74552/java   

Experiência de verificação

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
A experiência foi bem-sucedida. Quando uma página da web dinâmica é correspondida, a pesquisa aponta para dois servidores da web, mas observe que as páginas dos dois hosts devem ser as mesmas durante o trabalho

Experimento ②

Requisitos experimentais: nginx processa imagens estáticas, Tomcat processa páginas dinâmicas, configura o
Tomcat para se referir ao caminho e nginx coloca imagens. O
nome do diretório deve ser igual ao nome do projeto Java

Configuração Tomcat01

02 Eu não vou mudar isso, problema

[root@cat01 bao]# vim /web/cat01/index.jsp 
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="nginx/html; charset=UTF-8">  ##位置和图的位置一样,nginx/html
<title>CAT01 web</title>
</head>
<body>
<div>This is CAT01.</div><br>
<img src="FDL.jpg">
</body>
</html>

Configuração Nginx

[root@nginx /]# cd /usr/local/nginx/html/
[root@nginx html]# rz -E
rz waiting to receive.
[root@nginx html]# ls
50x.html  FDL.jpg  index.html

[root@nginx html]# vim /usr/local/nginx/conf/nginx.conf
    server {
    
    
        listen       80;
        server_name  localhost;
        ##添加下面
        location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
    
    
          root html;
          expires 30s;

Experimento de teste

Insira a descrição da imagem aquiO experimento foi bem sucedido

Acho que você gosta

Origin blog.csdn.net/Ora_G/article/details/108385796
Recomendado
Clasificación