Nginx implementa balanceamento de carga e servidor de arquivos

Como você que ama programar!
Aprenda cursos práticos SpringBoot https://edu.csdn.net/course/detail/31433
Aprenda cursos introdutórios SpringCloud https://edu.csdn.net/course/detail/31451


Visão geral

Este artigo apresentará o servidor Nginx muito popular. Vamos entender os conceitos de proxy reverso e balanceamento de carga, e então dominar a instalação e configuração do Nginx. Você pode usar o arquivo de configuração Nginx + Vsftp para fazer upload do servidor e realizar a configuração da carga balanceamento.

1. Introdução ao Nginx

Nginx é um servidor de proxy reverso e HTTP leve, de alto desempenho, alta estabilidade e simultaneidade. Atualmente, é amplamente utilizado em empresas de Internet, como Baidu, JD, Sina, Netease, Tencent, Taobao, etc.

1.1 O que o Nginx pode fazer

As principais funções do Nginx são:

  • servidor http

    O Nginx é geralmente usado para implantar recursos estáticos e implantá-los separadamente dos servidores (como Tomcat) que implantam recursos dinâmicos para obter a separação de dinâmica e estática e maximizar o desempenho do servidor.

  • Proxy reverso

    Servidor proxy de segundo plano, roteamento flexível por meio de configuração

  • Balanceamento de carga

    Um grande número de solicitações do usuário é distribuído uniformemente para vários servidores para melhorar a capacidade de carga do sistema

1.2 Proxy direto / reverso

Uma função importante do Nginx é um proxy reverso, portanto, primeiro precisamos descobrir o que é um proxy reverso.

Insira a descrição da imagem aqui

A diferença entre proxy de encaminhamento e proxy reverso é:

  • Proxy de encaminhamento, o proxy é o cliente

    Por exemplo, os usuários não podem acessar diretamente o servidor interno da empresa, mas podem acessar indiretamente por meio do servidor proxy VPN, que é uma espécie de proxy de encaminhamento

  • Proxy reverso, o proxy é o servidor

    Por exemplo: os negócios da Taobao são implantados em diferentes servidores, como servidores de commodity, servidores comerciais, servidores de pedidos, etc. Quando os usuários acessam o Taobao, as solicitações são encaminhadas para diferentes servidores back-end por meio do Nginx

2. Instalação do Nginx

2.1 Instale o Nginx no Linux

1) Instale bibliotecas dependentes

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

2) Baixe o Nginx

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

3) Descompacte

tar -zxvf nginx-1.12.0.tar.gz

4) Execute a configuração padrão

cd nginx-1.12.0
./configure

5) Compilar e instalar

make
make install

6) Inicie o nginx

Após compilar e instalar, o diretório nginx aparecerá

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

Outros comandos:

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

7) Abra a porta 80

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

Abra o navegador, digite o endereço IP, a página Nginx aparece

Insira a descrição da imagem aqui

2.2 Instale o Nginx no Windows

1) Vá para o site oficial para baixar o Nginx

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

2) Descompacte e clique duas vezes em nginx.exe

Insira a descrição da imagem aqui

3. Servidor de arquivos de compilação Nginx + Vsftp

Nginx como um servidor http tem um desempenho muito alto para implantar recursos estáticos. O componente Vsftp no Linux pode realizar a transferência de arquivos. Nginx + Vsftp pode ser combinado para construir um servidor de arquivos de alto desempenho para realizar a função de upload de arquivos do projeto.

3.1 Instalar vsftp

1) Instale o componente vsftp

yum -y install vsftpd

2) Adicionar usuário ftp

useradd ftpuser

O caminho padrão após o login é / home / ftpuser.

3) Adicionar senha para usuário ftp

passwd ftpuser

4) Modifique a configuração

O arquivo de configuração está em /etc/vsftpd/vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

Alterar configuração

Insira a descrição da imagem aqui

Desative o acesso anônimo

Insira a descrição da imagem aqui

Adicionar intervalo de portas

Insira a descrição da imagem aqui

5) Reinicie o vsftp

service vsftpd restart

6) Configure a inicialização

chkconfig vsftpd on

7) Modificar as permissões do usuário

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

3.2 Configuração Vsftp do Nginx

1) Crie um novo diretório para salvar fotos

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

2) Configure o Nginx

O arquivo de configuração do nginx é nginx / conf / nginx.conf

Adicionar local ao servidor

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

3) Reinicie o nginx

./nginx -s reload

Insira http: // endereço do servidor / imagens no navegador, você pode ver a lista de arquivos no diretório de upload

Insira a descrição da imagem aqui

4. Balanceamento de carga Nginx

4.1 Conceito de balanceamento de carga

Cada servidor tem um limite superior para o número de solicitações que podem ser processadas. Se esse limite for excedido, ele pode travar. A implantação de mais alguns servidores pode resolver este problema?

Não necessariamente. Supondo que todas as solicitações sejam feitas a um servidor, elas ainda travarão.

O balanceamento de carga é uma tecnologia de computador que pode distribuir as solicitações do usuário para cada servidor do cluster de acordo com um determinado algoritmo de balanceamento de carga, de modo a evitar a sobrecarga de um único servidor e melhorar a capacidade de processamento do cluster de servidor. Velocidade de resposta, para atingir o ideal configuração dos recursos do servidor.

Insira a descrição da imagem aqui

O balanceamento de carga pode ser obtido por meio de cliente, servidor e hardware. Nginx é uma tecnologia de balanceamento de carga do lado do servidor.

4.2 Configuração de balanceamento de carga

1) Configurações do servidor

Para a conveniência do teste, você pode iniciar vários projetos SpringBoot em um computador e simular vários servidores por distinção de porta

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

2) Modifique a configuração do Nginx

Adicione upstream em http, configure a lista de servidores, myservers é o nome da lista, e cada servidor dentro é o IP e a porta do servidor

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

Adicionar servidor, configurar o agente para enviar solicitações a meus servidores para processamento

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

3) Reinicie o Nginx

./nginx -s reload

4) Teste

Quando o navegador testou a porta 8088 para acessar a interface hello, descobriu-se que a chamada da interface estava em polling.

O poder de processamento de cada servidor é diferente e o peso pode ser configurado para que o servidor capaz possa lidar com mais solicitações

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;
}

Fim

O texto acima é o uso básico do Nginx. Se você achar útil, goste dele. Se você tiver alguma dúvida, também pode se comunicar.


Se você precisa aprender outro conhecimento Java, dê uma olhada aqui no conhecimento ultra-detalhado de Java Resumo

Acho que você gosta

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