Comment nginx transmet les requêtes en fonction de l'URL
Serveur proxy : sockerserver écoute un certain port, se connecte au port du serveur spécifié en fonction du message http et effectue une demande de données
-proxy http
la requête http passe par le serveur proxy, et le serveur proxy n'a qu'à être responsable de la transmission du corps de réponse http correspondant.
- Proxy https
Lorsqu'une requête https passe par le serveur proxy, un message de connexion sera envoyé pour établir un tunnel avec le serveur proxy. Si le serveur proxy renvoie http 200, l'établissement doit seulement être réussi. responsable du transfert des données. En fait, ssl/ La négociation TLS se produit toujours entre le client et le serveur réel.
proxyservlet
Étant donné que le port 8089 du projet backend peut accéder au service fastdfs du serveur, la première chose à laquelle j'ai pensé a été d'utiliser le proxyservlet de Springboot pour proxy la requête spécifiée vers le port 8088 du serveur
Le servlet principal de Spring boot est le dispatcherservlet de springmvc, son modèle d'URL par défaut est "/". Si nous voulons ajouter différents appels (autres interfaces serveur) à une certaine URL, nous devons créer un nouveau servlet proxy, qui utilisera servletregistrationbean et créera un nouveau proxyservlet pour le gérer et envoyer des données, et l'enregistrer dans le contexte de servlet géré par springboot (définir le serveur et le port spécifiés, ainsi que l'interface pour le transfert des demandes)
Dépendance
<dependency> <groupid>org.mitre.dsmiley.httpproxy</groupid> <artifactid>smiley-http-proxy-servlet</artifactid> <version>1.7</version> </dependency>
Configuration
### 配置代理 #请求resource时代理转发到端口8088项目中 proxy.test.servlet_url_one= /resource/* proxy.test.target_url_one= https://localhost:8088
@component @data public class proxyfilterservlet { @value("${proxy.test.target_url_one}") private string targeturl; @value("${proxy.test.servlet_url_one}") private string servleturl; }
Changez la configuration pour ajouter
@configuration public class proxyservletconfig { @autowired private proxyfilterservlet proxyfilterservlet; //多个代理servlet可以配置多个bean @bean public servletregistrationbean servletregistrationbean(){ servletregistrationbean servletregistrationbean = new servletregistrationbean(new proxyservlet(), proxyfilterservlet.getservleturl()); //这个setname必须要设置,并且多个的时候,名字需要不一样 servletregistrationbean.setname("go_backend"); servletregistrationbean.addinitparameter("targeturi", proxyfilterservlet.gettargeturl()); servletregistrationbean.addinitparameter(proxyservlet.p_log, "false"); return servletregistrationbean; } }
Établissez une connexion avec le serveur cible via le conteneur de servlet Après tout, il n'est pas aussi puissant qu'un serveur proxy professionnel comme nginx
nginx—redirection proxy
- .
À ce moment-là, j'ai pensé à ajouter une couche de nginx entre les serveurs. Pour transférer différentes demandes de service vers différentes API de port pour traitement
Pour transférer les demandes du réseau externe qui doivent être demandées vers le même serveur interne. port réseau
server { listen 80; server_name 127.0.0.1; location / { proxy_pass http://127.0.0.1:3000; } location ~ /api/ { proxy_pass http://172.30.1.123:8081; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment corriger l'erreur interdite Nginx 403? Vérifier les autorisations de fichier ou de répertoire; 2. Vérifier le fichier .htaccess; 3. Vérifiez le fichier de configuration NGINX; 4. Redémarrer Nginx. D'autres causes possibles incluent les règles de pare-feu, les paramètres de Selinux ou les problèmes d'application.

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Réponse à la question: 304 Erreur non modifiée indique que le navigateur a mis en cache la dernière version de ressource de la demande du client. Solution: 1. Effacer le cache du navigateur; 2. Désactiver le cache du navigateur; 3. Configurer Nginx pour permettre le cache client; 4. Vérifier les autorisations du fichier; 5. Vérifier le hachage du fichier; 6. Désactiver le CDN ou le cache proxy inversé; 7. Redémarrez Nginx.

Le serveur n'a pas l'autorisation d'accéder à la ressource demandée, ce qui donne une erreur NGINX 403. Les solutions incluent: vérifier les autorisations de fichiers. Vérifiez la configuration .htaccess. Vérifiez la configuration de Nginx. Configurez les autorisations Selinux. Vérifiez les règles du pare-feu. Dépanner d'autres causes telles que les problèmes de navigateur, les défaillances du serveur ou d'autres erreurs possibles.
