2017-03-31 2 views
0

Ich habe einen sehr einfachen Express-Server. Es hat compression und verwendet static-serve, um Dateien zu liefern. Ich habe cacheControl auf false gesetzt, so dass es nur das ETag verwendet.Express-Server dauert 500 ms, um eine 304 Antwort zurückzugeben

Der Server wird eine 304 für die Dateien (was gewünscht ist) zurückgeben, aber es dauert etwa 500ms, dies zu tun. Das ist die gleiche Zeit, die zum Senden der Datei benötigt wird.

Gibt es eine Konfiguration, die ich tun kann (außerhalb von Dingen wie Varnish und Nginx), um es zu beschleunigen?

Der Server hat nur etwa 6 verschiedene Dateien zu bedienen, alle statisch.

Express Server-Code:

const path = require('path'); 
const express = require('express'); 
const compression = require('compression'); 
const serveStatic = require('serve-static'); 

const PORT = process.env.PORT || 9095; 

const app = express(); 

app.use(compression({ threshold: 0 })); 

app.use(/regex pattern here/, serveStatic(path.join(__dirname, '../dist/client/assets'), { cacheControl: false })); 

app.listen(PORT, (error) => { 
    console.log(error || `Listening on port ${PORT}`); 
}); 

Antwort

1

sollten Sie verwenden nginx oder etwas ähnliches statische Inhalte zu dienen, da der Knoten dienen statische Modul benötigen Hash von Dateiinhalt zu berechnen. Dies ist sogar noch langsamer als nur das Versenden von Dateien, insbesondere auf dem lokalen Computer. Hier ist tief tauchen in dienen-statische Mechanik https://evanhahn.com/express-dot-static-deep-dive/

+0

, warum es nicht * müssen * den Hash berechnen? –

+0

@TamasHegedus Ich aktualisierte meine Antwort –

+0

Danke für die Antwort. In diesem Fall suche ich nach etwas ohne die Verwendung von Varnish oder Nginx. Es könnte sein, dass ich nur etwas Code schreibe, um alles im Speicher zwischenzuspeichern, da so wenige Dateien bereitgestellt werden. – samanime

Verwandte Themen