Назад | Перейти на главную страницу

Команда Mirror в NGINX и сопоставление строк в NGINX Config

Я включил кеширование с помощью NGINX, и он отлично работает. Запрос, который происходит несколько раз, обслуживается непосредственно из кеша nginx и не передается через прокси на мой работающий сервер. Я это проверил.

    server {
    listen       443 ssl;
    server_name  *.tme.com;
    add_header Strict-Transport-Security "max-age=0; includeSubDomains" always;
    ssl_certificate     myce+5.pem;
    ssl_certificate_key myce+5-key.pem;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location / {
            mirror_request_body off;
            proxy_cache my_cache; # mapping the path
            proxy_cache_key "${server_name}"; # adding a key, to find the specific cache
            proxy_cache_valid 200 1m; # cache only if 200 and expires in 120min
            proxy_cache_methods GET HEAD; # methods to cache on
            proxy_cache_min_uses 1; # no.of rallies excess to cache it
            proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; #serves cache content if the server is down, and has the internal server errors
            mirror /mirror;
            proxy_pass http://localhost:3001;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            add_header Last-Modified $date_gmt;
            set $me "HIT"; 
            if ($upstream_cache_status = $me) {
                add_header X-uri $upstream_cache_status;
            }
            add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
            if_modified_since off;
            expires off;
            etag off;
            proxy_read_timeout 300s;
            proxy_connect_timeout 300s;
            proxy_send_timeout 300s;
            send_timeout 300s;
    }
    location = /mirror {
        internal;
        if ($upstream_cache_status = "HIT") {
            rewrite ^/([A-Za-z0-9]+) /stats/websiteStats break;
            proxy_pass http://localhost:3001;
        }
    }
}

Но я пытаюсь использовать mirror с nginx, как показано выше в блоке сервера. Я хочу, чтобы ценность $upstream_cache_status равно HIT, Я хочу, чтобы запрос передавался через прокси в какой-то API. Как я могу это сделать? Приведенная выше конфигурация для зеркала вообще не работает.