Прокси Реверса NGINX: proxy_cache внутри, если блок - Возможный?

Использовать

sudo netstat -pn

видеть, какие порты открыты, и который PID использует порт. если название программы не показывают, можно сделать a ps aux видеть, какая программа использует порт.

Заставить программу прекращать использовать порт:

  • Если Вам разрешат, закроете программу - то порт будет свободен.
  • Если Вы знаете программу, настраиваете ее для использования другого порта. В Apache это находится в listen.conf файл.

Необходимо будет, вероятно, быть корнем, чтобы сделать это или использовать sudo, как я описал.

1
задан 16 May 2012 в 14:51
2 ответа

Похоже, что вам действительно нужно объединить переменную geo с proxy_cache_bypass и proxy_no_cache :

geo $skip_cache {
  default 1;
  123.123.123.123/32 0;
  1.2.3.4/32 0;
  10.0.0.0/8 0;
}

server {
  location ^~ /test/ {
    proxy_pass              http://frontend;
    proxy_http_version      1.1;
    proxy_set_header        Connection "";
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Real-Port $server_port;
    proxy_cache            cache_base;
    proxy_cache_valid      720m;

    # When $skip_cache is 1, the cache will be bypassed, and
    # the response won't be eligible for caching.
    proxy_cache_bypass     $skip_cache;
    proxy_no_cache         $skip_cache;
  }
}
3
ответ дан 3 December 2019 в 17:56

«Если» обычно является плохой практикой в ​​конфигурации nginx. Вы можете использовать модуль карты, чтобы все работало. см. http://nginx.org/en/docs/http/ngx_http_map_module.html http://wiki.nginx.org/HttpMapModule

map $remote_addr $matched_ip_location { 
123.123.123.123 @cache; 
default         @default; 
} 
... 
location ^~ /test/ {
 ... 
rewrite ^ $matched_ip_location
}
location @cache {
    ...
    proxy_cache            cache_base;
    proxy_cache_valid      720m;
}
location @default {
   ...
}
1
ответ дан 3 December 2019 в 17:56

Теги

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