2017-03-31 66 views
0

我有一個非常簡單的快遞服務器。它有compression並使用static-serve來提供文件。我有cacheControl設置爲false,所以它只使用ETag。快遞服務器需要500ms才能返回304響應

服務器將返回一個304文件(這是所需的),但它需要大約500毫秒這樣做。這與實際發送文件的時間相同。

有一些配置我可以做(除了Varnish和nginx之類的東西)來加速它嗎?

服務器只有大約6個不同的文件可供使用,全部是靜態的。

Express服務器代碼:

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}`); 
}); 

回答

1

您應該使用nginx的或類似的東西提供靜態內容,因爲節點服務靜電模塊需要從文件內容計算哈希值。所以這比僅僅在本地機器上提供文件更慢。 這裏是深入瞭解服務的靜態力學https://evanhahn.com/express-dot-static-deep-dive/

+0

爲什麼它需要* *計算哈希? –

+0

@TamasHegedus我更新了我的答案 –

+0

感謝您的回答。在這種情況下,我正在尋找一些不使用Varnish或nginx的東西。我可能只是寫一些代碼來緩存內存中的所有內容,因爲只有很少的文件被提供。 – samanime