NGINX и Node.js, Кэширующий возврат тех же результатов на всех подпапках

Мы используем NGINX для проксирования соединения с экземпляром Node.js, работающим на том же сервере. Не кэшируясь включенный для того местоположения, на одном уровне (т.е./v1/streams/) это возвращает 2 МБ json файл. Если идентификатор добавляется к URL (т.е./v1/streams/98souisdlfj87) только очень небольшая часть этого, 2 МБ json файл возвращаются.

Если мы добавляем кэширование путем добавления нового местоположения, указывающего/v1/streams, все запросы возвращают 2 МБ 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;
            }
    }
0
задан 9 November 2014 в 22:00
1 ответ

Я разобрался. Мне не хватало косой черты в конце локации.

location / v1 / streams / {

Теперь работает.

0
ответ дан 24 November 2019 в 08:56

Теги

Похожие вопросы