No description
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 |
||
---|---|---|
.github | ||
.tx | ||
docker | ||
docs | ||
scripts | ||
umap | ||
.dockerignore | ||
.gitignore | ||
.pipignore | ||
.prettierrc.yaml | ||
.readthedocs.yaml | ||
.travis.yml | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE | ||
Makefile | ||
manage.py | ||
MANIFEST.in | ||
mkdocs.yml | ||
osmic-white.yaml | ||
osmic.yaml | ||
package-lock.json | ||
package.json | ||
pyproject.toml | ||
pytest.ini | ||
README.md | ||
SECURITY.md |
uMap project
About
uMap lets you create maps with OpenStreetMap layers in a minute and embed them in your site. Because we think that the more OSM will be used, the more OSM will be improved. Built on top of Django and Leaflet.