c4bdb04795
uMap allows to use remote URL as data sources, but those URLs are not always CORS open, so this is why there is this "ajax-proxy" feature, where the URL is passed to the backend. Additionally, there is a caching feature, which duration is configurable through frontend settings. Valid values are: disabled, 5 min, 1 hour, 1 day. Initially, I wanted this to be totally handled by Nginx, but I never found a wayt to set the proxy_cache_valid value from a query string. Since then, at least in OSM France servers, the ajax-proxy is still handled by a Django view, which then opens the remote URL and transfert the data. This is not optimal. And I suppose this is what is causing hicups on the OSM France servers lately. This PR provides a mix option, where python deals with validating the URL and parsing the TTL parameter, and then it passes the hand to nginx which will serve the remote content. So, roughtly: - the client calls /ajax-proxy/?url=xxx&ttl=300 - python will validate the URL (not internal calls…) - if UMAP_SENDFILE_HEADER is set, then the python returns an empty response with the path /proxy/http://url plus it will set the cache ttl through the header X-Accel-Expires - this /proxy/ location is then handled by nginx |
||
---|---|---|
.. | ||
administration.md | ||
changelog.md | ||
contributing.md | ||
custom.md | ||
docker.md | ||
index.md | ||
install.md | ||
install_windows.md | ||
requirements.txt | ||
settings.md | ||
ubuntu.md |