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
Befehl „touch“ Es hat zwei Funktionen: Eine beste...
Aufgrund des Standard-Bridge-Netzwerks ändert sic...
Inhaltsverzeichnis 1. Übersicht 2. Speicherverwal...
Um das Problem zu lösen, dass Deepin den Google C...
Einige Studenten sagten, dass sie auf das Problem...
Inhaltsverzeichnis Hintergrund Beispiel Missverst...
Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...
Code-Implementierung: Code kopieren Der Code laut...
In diesem Artikel finden Sie das MySQL-Installati...
Heute stellen wir mehrere Möglichkeiten vor, mit ...
In diesem Artikel wird der CSS-Beispielcode vorge...
Auch „Tik Tok“ erfreut sich großer Beliebtheit un...
Lassen Sie uns zunächst einige gängige Anwendungs...
1. Laden Sie das komprimierte Tomcat-Paket von de...
Inhaltsverzeichnis 1. Vorwort 2. Finden Sie zwei ...