502 cas d'erreur causés par l'expiration du délai de connexion SpringBoot

1. Description du problème

Nginx est utilisé pour implémenter le routage et le transfert entre les systèmes internes.

Mais récemment, j'ai découvert qu'il existe un système qui signale souvent des erreurs 502, atteignant des centaines de fois par jour, ce qui est complètement insupportable.

2. Enquête sur les causes

J'ai donc vérifié et découvert que le personnel de configuration comprenait l'unité du délai d'expiration de la connexion ( server.tomcat.connection-timeout) en secondes, alors qu'il s'agissait en réalité de millisecondes.

Une partie de la configuration de SpringBoot est la suivante :

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    min-spare-threads: 30
    connection-timeout: 60 # 错误在这里
  port: 18080
  servlet:
    context-path: /
  max-http-header-size: 102400

La valeur de configuration d'origine est que 60si le GC est rencontré pendant le processus d'établissement de la connexion client et que le temps de pause du GC atteint plus de 60 ms au total, Tomcat verra qu'il expire, ce qui entraînera la connexion. ne parvient pas à être établi, puis Nginx donnera au client une erreur 502.

3. Solutions

Modifiez le délai d'expiration de la connexion, par exemple, modifiez-le en 【server.tomcat.connection-timeout=6000】, comme indiqué ci-dessous :

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    min-spare-threads: 30
    connection-timeout: 6000
  port: 18080
  servlet:
    context-path: /
  max-http-header-size: 102400

problème résolu.

Bien entendu, l'erreur 502 ne se limite pas à cette raison et le lien Nginx doit être vérifié.

Auteur : https://renfufei.blog.csdn.net/

Heure : 2 septembre 2020

Je suppose que tu aimes

Origine blog.csdn.net/renfufei/article/details/108356534
conseillé
Classement