[MapServer-users] Mapserver x k8s issue
Bjørn Ove Grøtan
bjorn.ove at grotan.com
Fri Nov 25 10:03:25 PST 2022
Marcin Niemyjski via MapServer-users:
> Hello,
>
> I'm involved in the development of a project connecting Mapserver with
> capabilities of Kubernetes like scalability, load balancing etc.
>
> We've run into problem wich I think can be solved on the side o Mapserver,
> namely:
>
> The k8s external IP cannot immediately be placed in "wms_onlineresource"
> because it takes time to generate it. Up to now I have checked the WMS
> operation by GetCapabilites, GetMap queries, and set "wms_onlineresource" to
> http://localhost:80/?map=/etc/mapserver/map1-test.map. I've made requests
> (GetMap GetCapabilites) via http://<External IP
> Address>/?map=/etc/mapserver/map1-test.map - everything was working. However,
> when loading the layer into QGIS nothing happened. I believe this is because
> even though the queries work using url with external IP, the information that
> comes in the XML file contains localhost:80 and QGIS is trying to connect to
> a layer that does not exist locally.
>
> Is there any way for the mapserver to know that localhost:80 must be replaced
> with the external ip address from the query?
Comment out the ows_onlineresource configuration, and Mapserver will utilize whatever hostname you reached it at.
That way, the same mapfile can be used in local development, test/qa and production without need for changing
ows_onlineresource when moving between environments.
One caveat we came across, having a reverse proxy in front of our mapserver (w/apache).
http->http => wms_onlineresource will use http
https->https => wms_onlineresource will use https
https->http => wms_onlineresource will use http, even though http headers for forward port and forward proto is set.
Other than that, you will be fine with not configuring ows/wms_onlineresource in your mapfile.
--
Kind regards
Bjørn Ove Grøtan
More information about the MapServer-users
mailing list