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.
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
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
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
Desative o acesso anônimo
Adicionar intervalo de portas
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
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.
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