


Explication comparative du code d'état 499 en HTTP et de l'erreur 499 sous nginx
Il existe de nombreuses situations dans lesquelles des erreurs 499 apparaissent dans le code d'état HTTP dans les enregistrements du journal. Une situation que j'ai rencontrée était que nginx était inversé vers un backend qui ne pouvait jamais être ouvert. C'était tout. L'enregistrement d'état du journal était 499. Envoyer. mot Le nombre de sections est 0.
Il y a toujours des utilisateurs qui signalent que le système du site Web est en panne. Parce que les produits en ligne n'ont pas été modifiés depuis longtemps, le problème avec le programme frontal peut être pratiquement éliminé, alors j'ai pensé que. l'interface appelée par la méthode Get n'est pas correcte. Elle était stable. J'ai demandé au personnel concerné et ils ont dit qu'il n'y avait pas de problème, j'ai demandé au personnel concerné le fichier journal du serveur nginx (awstats). log). Après analyse, j'ai constaté qu'il y avait de nombreuses erreurs avec le code d'erreur 499 dans le journal, représentant environ 1 % des fichiers journaux, et cela ne représente qu'environ 70 % de tous les rapports d'erreurs (voir la figure ci-dessous). pour tous les rapports d'erreurs), le total de tous les rapports d'erreurs dépassera 1 %, ce qui reste un montant très élevé.
Quelle est l'erreur 499 ? Jetons un coup d'œil à la définition dans le code source de NGINX :
ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
ngx_string(ngx_http_error_496_page), /* 496, https pas de certificat * /
ngx_string(ngx_http_error_497_page), /* 497, http vers https */
ngx_string(ngx_http_error_404_page), /* 498, annulé */
ngx_null_string, /* 499 , le client a fermé la connexion */
Vous pouvez voir que 499 correspond à "le client a fermé la connexion". Cela est probablement dû au fait que le temps de traitement côté serveur est trop long et que le client est « impatient ».
Raisons et solutions de l'erreur Nginx 499
Ouvrez le fichier access.log de Nginx et constatez que HTTP1.1 499 0 est apparu dans la dernière soumission - une telle erreur, recherchez nginx 499 sur Baidu Error, le le résultat est que le client s'est activement déconnecté.
Mais après mon test, ce n'est évidemment pas un problème de client, car utiliser port + IP pour accéder directement au serveur back-end n'a pas ce problème. Plus tard, lors du test de nginx, j'ai trouvé que si le message. est soumis deux fois trop rapidement, 499 se produira. , il semble que nginx pense qu'il s'agit d'une connexion non sécurisée et rejette activement la connexion du client
Mais je ne trouve pas de solution lors de la recherche de problèmes associés. J'ai cherché sur Google et trouvé un forum anglais à ce sujet. Mauvaise solution :
proxy_ignore_client_abort on;
Je ne sais pas si c'est sûr.
Cela signifie configurer le paramètre. proxy_ignore_client_abort on;
signifie que le serveur proxy ne doit pas fermer activement la connexion client.
Redémarrez nginx avec cette configuration, et le problème est bel et bien résolu. C'est juste un petit manque de sécurité, mais c'est bien mieux que de toujours ne pas trouver le serveur.
Une autre raison est que j'ai testé plus tard et constaté que le client avait effectivement fermé la connexion, ou que la connexion avait expiré. Peu importe le délai d'attente que vous avez défini, cela ne sert à rien. suffisamment de processus php. Veuillez améliorer le problème du nombre de processus php. Pour résoudre le problème, seuls 5 processus enfants sont ouverts dans l'environnement de test par défaut.
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)

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.

É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.

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.

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é.

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.

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.
