У меня проблема с использованием nginx в качестве балансировщика нагрузки. Я мог бы настроить его для работы в качестве балансировщика нагрузки, но я не знаю, как заставить его кешировать содержимое c с прокси-серверов в бэкэнде, например html, css, js, и c ... Это означает, что я хочу, чтобы nginx был погодным для кеширования или нет, в зависимости от содержимого ответа от бэкэнд-серверов, если он изменился на обход кеша и отправку запросов на бэкэнд, а если не для обслуживания из кеша. Я много пробовал и искал в inte rnet, чтобы сделать это с помощью многих директив, таких как proxy_cache_bypass и proxy_no_cache, но не смог. Есть ли средства для этого, если у кого есть опыт работы с такими топами c. это конфигурации:
upstream backend {
server www.webserver1.com:443 max_fails=3 fail_timeout=15s;
server www.webserver2.com:443 max_fails=3 fail_timeout=15s;
}
server {
listen 443 ssl;
rewrite_log on;
error_log /var/log/nginx/lb.error.log;
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 X-Forwarded-Proto $scheme;
proxy_set_header X-Proxy-Cache $upstream_cache_status;
ssl_certificate /etc/nginx/client.crt;
ssl_certificate_key /etc/nginx/client.key;
ssl on;
location / {
proxy_cache backcache;
#proxy_cache_methods GET HEAD POST;
#proxy_cache_bypass $cookie_nocache $arg_nocache;
#proxy_no_cache $cookie_nocache $arg_nocache;
proxy_cache_min_uses 1;
#proxy_cache_revalidate on;
#proxy_cache_valid 200 4m;
proxy_cache_lock on;
proxy_cache_background_update on;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_pass https://backend;
}
}
server {
listen 80 ;
if ($http_x_forwarded_proto != 'https') {
rewrite ^(.*) https://$host$1 redirect;
}
}
это содержимое config. файл в /etc/nginx/conf.d/, который включен в основную конфигурацию. файл /etc/nginx/nginx.conf, а также эти 2 строки находятся в основной конфигурации. файл:
proxy_cache_path /var/lib/nginx/cache keys_zone=backcache:20m max_size=100m;
proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args$cookie_user";