Задать вопрос
@nApoBo3

Nginx в качестве proxy для OSM не сохраняет tile, как поправить?

nginx настроен как proxy запросов к openstreetmap серверам.
Конфиг ниже
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=osm_cache:100m max_size=2g inactive=100d use_temp_path=off;
				 		
	upstream openstreetmap_backend {
	  server  a.tile.openstreetmap.org;
	  server  b.tile.openstreetmap.org;
	  server  c.tile.openstreetmap.org;
	}
	
    server {
	....		
				
		location /osm/ {			
			access_log  /var/log/nginx/access_osm.log;						
			proxy_cache       osm_cache;
			proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504 http_429;
			proxy_cache_background_update on;
			proxy_cache_lock on;			
			proxy_ignore_headers Expires Cache-Control;
			proxy_cache_valid 200 302 20d;						
			proxy_cache_valid any 5m;
			proxy_cache_key "$request_uri";
			proxy_pass http://openstreetmap_backend/;
		}


Все запросы png файлов с upstream идут со статусом [Cache:MISS]
[Cache:MISS] .... "GET /osm/15/19138/9533.png

При этом ошибки кэшируются, т.е. если сделать не корректный запрос и получить от upstream http_429, то он будет закэширован и будет [Cache:HIT]

Как поправить конфиг для корректного кэширования png?
  • Вопрос задан
  • 766 просмотров
Подписаться 2 Простой 4 комментария
Решения вопроса 1
@nApoBo3 Автор вопроса
Не хватало двух строчек.
Nginx не кэширует данные которые имеют заголовок set-cookie.

proxy_hide_header Set-Cookie;
proxy_ignore_headers Set-Cookie;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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