ceph-mgr is difficult to put behind an nginx reverse proxy configuration
currently because of the HTTP return codes that it uses in different
situations.
We have 3 ceph-mgr servers (one on each of 3 monitors). Only 1 is ever
active. We do not expose the monitors outside of the cluster, so we cannot
point the browser directly at the manager IP address, instead we have an
nginx proxy server setup on a separate administrative node in front of the
cluster.
When a reverse proxy asks an inactive manager for the root URL (/), the
inactive mgr will return a 302 redirect code referencing the active mgr
node - which is good, we can handle that. However, when the reverse proxy
requests content from the inactive mgr, for example requesting something
like "/runtime.26209474bfa8dc87a77c.js", the inactive mgr returns a 404 Not
Found error instead of a 302 redirect. This makes it difficult
(impossible?) to get all of the content if an inactive ceph-mgr is selected
by the reverse proxy.
It would be nice if any request to an inactive ceph-mgr returned a 302 with
the correct location (and full URI path) to the client (the reverse proxy
in this case).
thanks,
Wyllys Ingersoll