Nginx
NGINX 和 Node.js 記憶體在所有子文件夾上返回相同的結果
我們使用 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/ {
現在它起作用了。