(Apart from my direct comments in my previous reply in the ServerUID 
discussion, 
I offer a little essay about my motivation in this topic for the interested, as 
it
is related to the mod_md design I did. It is long. Please feel free to ignore 
it.)


When thinking about adding ACME support to Apache, I felt that the server lacked
the concept of something "above" VirtualHosts. Something that keeps common 
properties that some VirtualHosts have in common.


The Occasional Admin
--------------------
My example was the Apache instance I myself had kept on running over the years,
that has a very limited set of DNS domains it manages. What I had always 
disliked
is when I ended up copy&pasting configuration directives between different
VirtualHosts. 

I say "ended up", because there are other options like macros or includes, but
for an occasional site admin like myself, those do not work that well. If I go
in to fix something, it will work best with some local changes to the 
VirtualHost
that I'd like to change/fix. Editing includes/macros is dangerous as I have no
good feeling if this will break other VirtualHosts that also include/use this, 
but I have forgotten about that dependency. I only edit the server every few
months or so.

Then I use Ubuntu, which already comes with several includes. But editing
those is worse, since I am never certain if edits get replaced on update or
if updates get ignored due to my edits. I could find this all out, but the
time I am willing to spend on this is limited.

I consider myself a very average httpd admin.


The Arrival of SSL
------------------
This all started when SSL was not really a topic for small sites like mine.
There was 1 VirtualHost for every DNS name served (plus some aliases). Changes
almost always affected only once vhost at a time.

When https: became relevant (and certificates affordable) things got more
complicated. It doubled the number of VirtualHosts as most of the sites needed
be be available via http: and https: for the same resources (some resources only
to be available on https:).

Since it took some effort to get a certificate, I got few certs with several 
alt-names. This meant the same SSL configurations copy&paste between vhosts.
Again, yes, Includes to the rescue. Did some of them, never was happy.

Now, a VirtualHost in my server no longer was the DNS domain. Instead a DNS
domain was made of several vhosts and, if I did it correctly, the common
parts were shared and the other parts stayed separated. It worked, but it
did not feel very natural.

See: as the admin, I do not look at resources for VirtualHosts. I *have*
different sets of resources and need them to be served in the right way.
A vhost is just a vessel to do that. And the vessel no longer could contain
a complete set of resources. I needed to split it over several vessels.


Managed Domains
---------------
This was the motivation to design something that aggregates the common things
for several VirtualHosts into something new. The name I came up with for 
that is a "Managed Domain". 

"Domain" as it is mainly identified by a DNS name. "Managed" because the
server should offer some nice defaults on how to serve it and take care 
about things.
aspects like 

Obviously it was made to care about the domain's certificate. Another
thing is that you can specify that resources in this domain require being
served via https: only.

There are other things that would fit well into this concept. For example,
settings and locations for access logging would be nice to have. IO Stats
as well.

Locations would be really useful.


Alternative
-----------
Instead of enhancing Managed Domains, one could also go about extending
VirtualHosts to allow better management of common resource sets. My patch
to allow address lists in SSLEngine goes in that direction. The drawback
is that when one overloads existing directives with "special sauce", it
has limits and can be easily confusing.


Conclusion
----------
I hope to have made the case for a concept "above" vhosts. If that is
an extension of what mod_md currently offers or needs to be reshaped
is not that important. I merely argue that we need such a thing and
current config concepts and helpers are not enough.


Now, go and enjoy your definitely-not-soccer event...

Cheers,

Stefan


Reply via email to