2013-12-12 28 views
0

我有一個設置,在nodejs中以即時方式呈現圖像。之後,圖像緩存在nginx將在後續請求中直接獲取它們的目錄中。在nginx中計算JavaScript中的相同etag

如何在nodejs/javascript中生成與nginx將在第二個請求中生成相同的etag?

+0

你怎麼樣在節點創建映像之後,而不是圖像返回到客戶端,您加載到Nginx的目錄,讓你的節點服務器重定向到Nginx的資源? – srquinn

+0

這不是一個壞主意,但另一個HTTP請求幾乎與讓用戶在下一頁上載請求圖像一樣昂貴。 –

+0

如果你知道C,你可以把它分開:https://github.com/mikewest/nginx-static-etags/blob/master/ngx_http_static_etags_module.c – srquinn

回答

0

我有一個想法。您可以設置nginx以使用try_files首先檢查文件是否存在於靜態目錄中,如果不存在,則代理創建節點。這並不是你正在尋找的東西,但它可以讓瀏覽器緩存一致的URL,然後etag就不那麼重要了。

location/{ 
    root /path/to/root/of/static/files; 
    try_files $uri $uri/ @nodeserver; 

    expires max; 
    access_log off; 
} 

location @nodserver { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://127.0.0.1:3000; 
} 
+0

這就是我今天的做法,但我仍然會在第一個響應中使用etag。 –