I have a working infrastructure containing Apache2 with FCGI and QGIS-Server bundled in a Docker Container to deliver a WMS. My written Plugin (Python) for QGIS-Server is working like expected. It takes information from a WMS request, performs some calculations and updates my WMS Layer. It has one endpoint to setup a new project (creating a new folder with a .qgs file) and one endpoint to send a json-string to configure some settings.

I want now to go one step further. My plan is, that every connected client has their own specific configuration and data in the QGIS-Server Plugin. As far as I know it is not possible with the standard configuration of Apache2 with fcgi. Every new request will override my variables in the QGIS-Server Plugin (Is my assumption right?).

To be more clear:

  • I have one Docker Container to deliver a WMS
  • Inside of the Container is a Python Plugin for the QGIS-Server
  • The Plugin has project specific configurations and data
  • Normally the project is specific to a client
  • If a second client creates a new project to get a WMS which fits his need, he will override the settings of the first client (my assumption)
  • To solve this I need your help

Here are a few questions:

  • Is it possible to serve one process per connected client (so that one QGIS-Server Plugin exists for one connection)
  • If that is not possible, what are valid alternatives to solve the problem (My idea is to outsource client specific configurations and data in separate files on the filesystem which will be loaded into the QGIS-Server Plugin on every request)

Hints for the configuration of Apache2 and fcgi are welcome.