I want a feature similar to sacredboard's "sub-url":
I want to use mlflow tracking server with jupyterhub. Jupyterhub has a "Services" option, which handles proxying services. But it adds a prefix to the url of the requests ("/services/
Could be something like:
mlflow server ... --sub-url "/services/mlflow"
That will serve everything at http:/localhost:5000/services/mlflow/...
To do this, sacredboard uses ideas from here: http://blog.macuyiko.com/post/2016/fixing-flask-url_for-when-behind-mod_proxy.html
We can use it too
This is a great idea, we'll probably add something like this and move all routes in the javascript to a fragment after the URL.
To make it work, it would require changing the hardcoded/auto-generated paths in mlflow/server/js/src/sdk/MlflowService.js
and _get_paths() function in mlflow/server/handlers.py
Then you would have it working.
I'm also experimenting with serving the mlflow server from behind a reverse proxy that puts it on a sub-path.
From what I can tell, the only thing that preventing me from using it as-is is the fact that the AJAX API calls to /ajax-api/... use an absolute path. If I change those paths to just the relative ajax-api/... it seems to work fine. (The asset URLs already seem to use relative URLs and so seem to resolve fine when hosted behind the reverse proxy with sub-url.)
Would there be any issue in just making those AJAX API calls relative? (They are the ones that end up in the generated mlflow/mlflow/server/js/src/sdk/MlflowService.js)
Edit: Oh, actually this was already mentioned in #597 ; except with my added question of if one can simply make the api path relative.
Hi all, using a reverse proxy w/ MLflow has come up a bunch, but it's a bit hard to for us to keep track of the issues and help here. We definitely need some community help. I've created #2823 as a place to request this help.
Most helpful comment
This is a great idea, we'll probably add something like this and move all routes in the javascript to a fragment after the URL.