Ich habe kürzlich in einem Projekt nginx und im Backend Java verwendet. Dabei stellte ich fest, dass die Verarbeitung einer Anfrage im Backend mehr als 1 Minute dauerte und der Statuscode der Anfrage „504 Gateway Time-out“ lautete. Verstehen Sie alle Timeout-bezogenen Konfigurationen von nginx wie folgt: Keepalive_Timeout HTTP verfügt über einen KeepAlive-Modus, der dem Webserver mitteilt, die TCP-Verbindung nach der Verarbeitung einer Anfrage offen zu halten. Wenn andere Anfragen vom Client empfangen werden, verwendet der Server diese nicht geschlossene Verbindung, ohne eine weitere Verbindung herzustellen. http keep-alive, jede Anfrage einer Webseite ist HTTP (Bilder, CSS usw.), und das Öffnen einer HTTP-Anfrage erfordert zuerst das Herstellen einer TCP-Verbindung. Wenn eine Seite für jede Anfrage eine TCP-Verbindung öffnen und schließen muss, ist das eine Verschwendung von Ressourcen. keepalive_timeout ist die Zeit, die die TCP-Verbindung bestehen bleibt, wenn eine HTTP-Anfrage abgeschlossen ist. Wenn zu diesem Zeitpunkt eine weitere HTTP-Anfrage eingeht, wird die TCP-Verbindung wiederverwendet. Wenn keine neue Anfrage eingeht, wird die TCP-Verbindung geschlossen. Benutzer nginx; Arbeiterprozesse 1; Fehlerprotokoll /var/log/nginx/error.log warnen; pid /var/run/nginx.pid; Ereignisse { Arbeiterverbindungen 1024; } http { /etc/nginx/mime.types einschließen; Standardtyp Anwendung/Oktett-Stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; Zugriffsprotokoll /var/log/nginx/access.log Haupt; sendfile an; tcp_nopush ein; tcp_nodelay ein; KeepAlive-Timeout 65; Maximale Körpergröße des Clients: 8192 m. #gzip ein; #include /etc/nginx/conf.d/*.conf; Server { hören Sie 80 so_keepalive=30m::; hören Sie 443 Standard-SSL; SSL-Zertifikat /etc/nginx/ssl/server.crt; SSL-Zertifikatsschlüssel /etc/nginx/ssl/portalkey.key; #SSL-Passwortdatei /etc/nginx/ssl/ssl.pass; SSL-Sitzungszeitüberschreitung 5 Min. SSL-Protokolle SSLv2 SSLv3 TLSv1; ssl_ciphers HOCH:!aNULL:!MD5; ssl_prefer_server_ciphers ein; Standort / { Proxy_Request_Buffering aus; Proxy-Passwort http://127.0.0.1:8011/; Proxy_Verbindungs-Timeout 180; Proxy_Sendezeitüberschreitung 180; Proxy_Lese_Timeout 180; Sendezeitüberschreitung 180; } Standort /test1_url/ { Proxy-Passwort http://127.0.0.1:8008/; Proxy_Verbindungs-Timeout 180; Proxy_Sendezeitüberschreitung 180; Proxy_Lese_Timeout 180; Sendezeitüberschreitung 180; } Standort /test2_url/ { Proxy-Passwort http://127.0.0.1:3000/; Proxy_Verbindungs-Timeout 180; Proxy_Sendezeitüberschreitung 180; Proxy_Lese_Timeout 180; Sendezeitüberschreitung 180; } } } # Konfigurationsabschnitt: http, Standard 75 s KeepAlive-Timeout 60;
so_timeout: Wenn ein Benutzer eine TCP-Verbindung mit einem Server öffnet --> es gibt für längere Zeit keinen Verkehr auf dieser Verbindung (so_keepalive-Timeout) --> der Server sendet ein Testpaket, um zu sehen, ob der Benutzer noch aktiv ist --> wenn keine Antwort auf das Testpaket erfolgt, wird die TCP-Verbindung geschlossen so_keepalive=an|aus|[keepidle]:[keepintvl]:[keepcnt] so_keepalive=30m::10 setzt das Leerlauf-Timeout (TCP_KEEPIDLE) auf 30 Minuten, belässt das Prüfintervall (TCP_KEEPINTVL) auf seinem Systemstandard und setzt die Prüfanzahl (TCP_KEEPCNT) auf 10 Prüfungen. Es kann nur einer der drei oben genannten Parameter verwendet werden und sie können nicht gleichzeitig verwendet werden, z. B. so_keepalive = on, so_keepalive = off oder so_keepalive = 30s:: (was bedeutet, dass 30 Sekunden lang ohne Datenpakete gewartet wird, bevor ein Erkennungspaket gesendet wird). Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Die 13 am häufigsten in Interviews gestellten Fragen zu Vue-Modifikatoren
>>: So ändern Sie das ROOT-Passwort in MySql8.0 und höheren Versionen richtig
Ich werde die Probleme aufzeichnen, die während d...
Dieser Artikel enthält einfachen HTML- und Musikp...
1. Ursache: Der Effekt, nachdem die Subbox auf Fl...
Der Grund dafür ist, dass dieser Webseitentyp auf ...
Detaillierte Erklärung zur MySQL-Sortierung chine...
Inhaltsverzeichnis 1 Node.js-Methode zum Senden v...
flexibles Layout Definition: Das Element des Flex...
Inhaltsverzeichnis 1. Stoppen Sie zuerst den MySQ...
Der schnellste Weg, die neueste Version von OpenS...
Hier kommt CentOS7 zum Einsatz und die Kernel-Ver...
Inhaltsverzeichnis Definieren der HTML-Struktur E...
Inhaltsverzeichnis 1. Docker installieren 2. Sona...
1. Entwicklungsumgebung vue 2. Computersystem Win...
Problemphänomen: [root@localhost ~]# Docker-Image...
Es handelt sich dabei ausschließlich um Webseiten...