Entenda e implemente o proxy reverso Nginx em minutos!


Prefácio: Os pontos de conhecimento envolvidos neste artigo são: comandos básicos do CentOS7, operações comuns do docker, volumes de dados de contêiner, vinculação de porta e vinculação de nome de domínio, proxy reverso, se você usar um sistema operacional diferente e métodos diferentes dos deste artigo Relacionamentos, você pode consulte o catálogo de artigos para entender quais etapas um proxy reverso geralmente requer.

1. Conceito

Antes de implementar um proxy reverso , devemos primeiro saber o que é um proxy direto e compreender sua função por meio das diferenças entre eles

1.1 Proxy de encaminhamento

como mostra a imagem:

Insira a descrição da imagem aqui

Não é difícil ver que no exemplo acima, o PC na LAN envia a solicitação para o servidor proxy, e então o servidor proxy encaminha a solicitação para a Internet

1.2, proxy reverso

Insira a descrição da imagem aqui

Não é difícil ver que no exemplo acima, a solicitação da Internet irá primeiro passar pelo servidor proxy e, em seguida, determinar qual site retornar de acordo com o servidor proxy

1.3. Comparação dos dois

Tipos de A diferença
Proxy de encaminhamento Cliente proxy , solicitações de encaminhamento unificado
Proxy reverso Servidor proxy , distribuir solicitações uniformemente

2. Servidor proxy Nginx

2.1, instale o espelho Nginx

1. Pesquisar espelho nginx

docker search nginx

2. Extraia a imagem nginx (novamente, você precisa configurar a fonte para melhorar a velocidade do docker de download da imagem, Baidu para detalhes)

docker pull nginx

2.2, prepare a configuração relacionada ao Nginx

1. Crie um diretório nginx no diretório / root para armazenar informações de dados nginx

mkdir ~/nginx

2. Entre no catálogo

cd ~/nginx

3. Crie um diretório conf.d sob o diretório nginx (usado para armazenar arquivos de configuração relacionados ao proxy reverso)

mkdir conf.d

4. Crie o arquivo de configuração nginx.conf no diretório conf (escolha um dos dois métodos)

vi nginx.conf

ou

vim nginx.conf

5. Adicione o seguinte conteúdo de configuração

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
    
    
	worker_connections 1024;
}
http {
    
    
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	
	log_format main 	'$remote_addr - $remote_user [$time_local] "$request" '
						'$status $body_bytes_sent "$http_referer" '
						'"$http_user_agent" "$http_x_forwarded_for"';
						
	access_log /var/log/nginx/access.log main;
	
	sendfile on;
	#tcp_nopush on;
	
	keepalive_timeout 65;
	#gzip on;
	include /etc/nginx/conf.d/*.conf;
}

7. Crie um diretório conf no diretório nginx (armazene as informações de configuração do nginx)

mkdir conf

8. Crie o arquivo de configuração proxy.conf no diretório conf.d (configuração relacionada ao proxy reverso)

upstream tomcat-test {
    
    
	server 192.168.181.5:8080;
}

server {
    
    
	listen	80; #port
	server_name	www.proxy.com; #host
	location / {
    
    
		proxy_pass http://tomcat-test;
		index index.html;
	}
}

Explicação do arquivo de configuração (o ip precisa ser alterado de acordo com o ip da sua máquina virtual):

Insira a descrição da imagem aqui

2.3, crie um contêiner

1. Crie um contêiner e defina o mapeamento de porta e diretório (no diretório nginx)

docker run -id --name=c_nginx \
-p 80:80 \
-p 81:81 \
-p 82:82 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx

Explique um pouco o arquivo de configuração acima:

-pA função do comando é ligar a porta da máquina virtual à porta do contêiner

-vA função do comando é fazer com que a máquina virtual e o contêiner compartilhem o mesmo diretório, $PWDindicando o diretório atual. O diretório compartilhado está na máquina virtual, não no contêiner (você pode aprender sobre volumes de dados)

3. Servidor de teste Tomcat

3.1, instale o espelho

1. Pesquisar espelho tomcat

docker search tomcat

2. Puxe a imagem do Tomcat

docker pull tomcat

3.2, crie o contêiner e diretório do tomcat

1. Crie um diretório tomcat no diretório / root (usado para armazenar arquivos html)

mkdir ~/tomcat
cd ~/tomcat

2. Crie e edite o arquivo index.html (página html para exibição posterior)

vi index.html

Insira o conteúdo do teste

this is index.html port=8080!!!! 

3. Criar contêiner, definir porta, mapeamento de diretório

docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat

4. O host executa a configuração relevante de mapeamento de nome de domínio

Como mostrado abaixo:

Insira a descrição da imagem aqui

Agora queremos é através do www.proxy.comacesso nginx servidor proxy nome de domínio, endereço ip do servidor proxy é 192.168.181.5, para que o navegador possa identificar este domínio, precisamos definir o arquivo de configuração do computador

Este artigo usa o sistema operacional Windows como exemplo, outros sistemas operacionais precisam ser Baidu

O sistema Windows de arquivo de mapeamento de nome de domínio está C:\Windows\System32\drivers\etcno hostsarquivo de diretório

Insira a descrição da imagem aqui

Adicione as seguintes informações ao arquivo:

192.168.181.5 www.proxy.com

O arquivo hosts é equivalente a um servidor DNS, que www.proxy.comresolve o que você envia para 192.168.181.5este endereço IP

5. Resultados do teste

Reinicie o tomcat e o nginx

docker restart c_nginx
docker restart c_tomcat

Depois de visitar www.proxy.com, você pode ver os seguintes efeitos. Não
Insira a descrição da imagem aqui
é fácil de criar. Se você ganhou algo, por favor, curta e incentive. Se você tiver alguma dúvida, indique, progridam juntos e aprendam juntos ~ ^ _ ^

Acho que você gosta

Origin blog.csdn.net/weixin_44829930/article/details/109005883
Recomendado
Clasificación