Nginx

NGINX 和 Node.js 記憶體在所有子文件夾上返回相同的結果

  • November 10, 2014

我們使用 NGINX 代理與執行在同一伺服器上的 Node.js 實例的連接。如果沒有為該位置打開記憶體,在一個級別(即 /v1/streams/)它會返回一個 2MB 的 json 文件。如果將 ID 添加到 URL(即 /v1/streams/98souisdlfj87),則只會返回該 2MB json 文件的一小部分。

如果我們通過添加指向 /v1/streams 的新位置來添加記憶體,則所有請求都會返回 2MB 的 json 文件,而不管文件夾深度如何。

這是我的配置的相關部分。

   http    {
           proxy_cache_path /var/lib/nginx/cache levels=1:2
                    keys_zone=streams:10m
                    max_size=1g inactive=10h;
           proxy_cache_key "$request_uri";

           proxy_headers_hash_max_size 8192;
           proxy_headers_hash_bucket_size 256;
           proxy_ignore_headers "Set-Cookie";
   }


   server {
           location /v1/ {
                   proxy_pass http://127.0.0.1:5001/;
                   proxy_http_version 1.1;
                   proxy_set_header Upgrade $http_upgrade;
                   proxy_set_header Connection "upgrade";
                   proxy_set_header Host $host;
                   proxy_set_header X-Real-IP $remote_addr;
                   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                   proxy_set_header XNginX-Proxy true;
                   proxy_redirect off;
                   proxy_cache_bypass $http_upgrade;
           }
           location /v1/streams {
                   proxy_cache streams;
                   proxy_pass http://127.0.0.1:5001/streams/;
                   add_header X-Proxy-Cache $upstream_cache_status;
                   proxy_cache_valid 200 204 302 1d;
                   proxy_http_version 1.1;
                   proxy_set_header Upgrade $http_upgrade;
                   proxy_set_header Connection "upgrade";
                   proxy_set_header Host $host;
                   proxy_set_header X-Real-IP $remote_addr;
                   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                   proxy_set_header XNginX-Proxy true;
                   proxy_redirect off;
                   proxy_cache_bypass $http_upgrade;
           }
   }

我想到了。我錯過了該位置的尾部斜杠。

location /v1/streams/ {

現在它起作用了。

引用自:https://serverfault.com/questions/643120