Я включил кеширование с помощью 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. Как я могу это сделать? Приведенная выше конфигурация для зеркала вообще не работает.