I am also particularly interested in this. I do understand that nginx support still isn’t as advanced - which is understandable given how long apache has been supported already.
However, I was wondering if there are any plans in place to work on a unified abstraction layer for some of the more common features of different web servers (think listen interfaces, port numbers, virtual hosts, forked processes, max connections per second - things like that).
I am really not thinking in terms of a complete 1:1 mapping here, just the more common, SHARED, settings that are typical for a web server.
If you could come up with such a wrapper/abstraction layer, then other developers could provide custom implementations for certain features, i.e. in the form of modules, that just do one specific thing, only.
I guess a feature to set up virtual hosts, could then be assembled by using some of the more low-level building blocks (set port, set directory).
Basically, I am trying to suggest to approach this in an orchestrated fashion, such that a simple layer is implemented - which can be extended by other VirtualMin users.
Obviously, parsing all these config files is really complex - but handling just specific options would seem to be much easier (as long as there’s no dependency chain among features).
For example, it would be simple for me to provide a sed/awk or perl script to get/set (read/write) the port number from an nginx config file. Same goes for document_root and other “simple” config settings.
If we could come up with such an interface, then users could help providing all the required building blocks step by step.
And ultimately, the nice thing here is, that this approach would scale well - even for people who always need to use the latest/greatest technology (think rails folks).
Just wondering, you know…
Thanks