Comprenez et implémentez le proxy inverse Nginx en quelques minutes!


Préface: Les points de connaissance impliqués dans cet article sont les suivants: commandes de base CentOS7, opérations courantes de docker, volumes de données de conteneur, liaison de port et liaison de nom de domaine, proxy inverse, si vous utilisez un système d'exploitation différent et des méthodes différentes de celles de cet article Relations, vous pouvez Consultez le catalogue d'articles pour comprendre les étapes généralement requises par un proxy inverse.

1. Concept

Avant d'implémenter un proxy inverse , nous devons d'abord savoir ce qu'est un proxy direct , et comprendre son rôle à travers les différences entre eux

1.1 Proxy de transfert

comme le montre l'image:

Insérez la description de l'image ici

Il n'est pas difficile de voir que dans l'exemple ci-dessus, le PC du LAN envoie la demande au serveur proxy, puis le serveur proxy transmet la demande à Internet

1.2, proxy inverse

Insérez la description de l'image ici

Il n'est pas difficile de voir que dans l'exemple ci-dessus, la demande d'Internet passera d'abord par le serveur proxy, puis déterminera quel site Web renvoyer en fonction du serveur proxy

1.3. Comparaison des deux

Types de la différence
Transférer le proxy Client proxy , demandes de transfert unifiées
Proxy inverse Serveur proxy , distribue uniformément les demandes

2. Serveur proxy Nginx

2.1, installez le miroir Nginx

1. Rechercher dans le miroir nginx

docker search nginx

2. Tirez l'image nginx (encore une fois, vous devez configurer la source pour améliorer la vitesse de téléchargement de l'image par docker, veuillez Baidu pour plus de détails)

docker pull nginx

2.2, préparer la configuration liée à Nginx

1. Créez un répertoire nginx dans le répertoire / root pour stocker les informations de données nginx

mkdir ~/nginx

2. Entrez dans le catalogue

cd ~/nginx

3. Créez un répertoire conf.d sous le répertoire nginx (utilisé pour stocker les fichiers de configuration liés au proxy inverse)

mkdir conf.d

4. Créez le fichier de configuration nginx.conf sous le répertoire conf (choisissez l'une des deux méthodes)

vi nginx.conf

ou

vim nginx.conf

5. Ajoutez le contenu de configuration suivant

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. Créez un répertoire conf sous le répertoire nginx (stockez les informations de configuration de nginx)

mkdir conf

8. Créez le fichier de configuration proxy.conf dans le répertoire conf.d (configuration liée au proxy inverse)

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

Explication du fichier de configuration (l'adresse IP doit être modifiée en fonction de l'adresse IP de votre propre machine virtuelle):

Insérez la description de l'image ici

2.3, créer un conteneur

1. Créez un conteneur et définissez le port, le mappage du répertoire (sous le répertoire 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

Expliquez un peu le fichier de configuration ci-dessus:

-pLa fonction de la commande est de lier le port de la machine virtuelle au port du conteneur

-vLa fonction de la commande est de faire en sorte que la machine virtuelle et le conteneur partagent le même répertoire, en $PWDindiquant le répertoire actuel. Le répertoire partagé se trouve dans la machine virtuelle et non dans le conteneur (vous pouvez en savoir plus sur les volumes de données)

3. Serveur de test Tomcat

3.1, installer le miroir

1. Rechercher le miroir tomcat

docker search tomcat

2. Tirez l'image du chat

docker pull tomcat

3.2, créer un conteneur et un répertoire tomcat

1. Créez un répertoire tomcat dans le répertoire / root (utilisé pour stocker les fichiers html)

mkdir ~/tomcat
cd ~/tomcat

2. Créez et modifiez le fichier index.html (page html à afficher plus tard)

vi index.html

Entrez le contenu du test

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

3. Créer un conteneur, définir le port, mappage de répertoire

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

4. L'hôte effectue la configuration appropriée du mappage de nom de domaine

Comme indiqué ci-dessous:

Insérez la description de l'image ici

Maintenant, nous voulons que via l' www.proxy.comaccès au nom de domaine du serveur proxy nginx, l'adresse IP du serveur proxy est 192.168.181.5, afin de permettre au navigateur d'identifier ce domaine, nous devons définir le fichier de configuration de l'ordinateur

Cet article prend comme exemple le système d'exploitation weindows, les autres systèmes d'exploitation doivent être Baidu

fichier de mappage de nom de domaine Windows est C:\Windows\System32\drivers\etcsous le hostsfichier de répertoire

Insérez la description de l'image ici

Ajoutez les informations suivantes au fichier:

192.168.181.5 www.proxy.com

Le fichier hosts est équivalent à un serveur DNS, qui www.proxy.comrésout ce que vous envoyez dans 192.168.181.5cette adresse IP

5. Résultats des tests

Redémarrez tomcat et nginx

docker restart c_nginx
docker restart c_tomcat

Après avoir visité www.proxy.com, vous pouvez voir les effets suivants. Ce
Insérez la description de l'image ici
n'est pas facile à créer. Si vous avez gagné quelque chose, veuillez aimer et encourager. Si vous avez des questions, faites-le remarquer, progressez ensemble et apprenez ensemble ~ ^ _ ^

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44829930/article/details/109005883
conseillé
Classement