During the Aegir Development BOF session at Drupalcon London we addressed the #1047174: Reverse proxy support issue

My effords on it have been unsuccessfull so far and I encountered some obstacles in Aegirs object model. The idea that cam up during the BOF was to introduce "sub services" for the http service. This would allow for greater flexibility when implementing different webserver platforms like Apache, Nginx, Varnish, Pound etc. These would them implement one or more of subservices. Initialy those could be:

  • Worker(?). A PHP enabled webserver like Apache or nginx that runs Drupal.
  • SSL. An SSL (https) implementation that encrypts http traffic. This could be Apache, nginx or pound.
  • Proxy. A Reverse proxy that passes requests on to a worker. This could be Apache, nginx, pound of Varnish.

This would require refactoring the current web service code and might also prevent code duplication between current and future webservices.

Comments

izmeez’s picture

subscibing

Steven Jones’s picture

Version: 6.x-1.x-dev » 7.x-2.x-dev

We need to look into other systems to see how they handle this kind of thing, because we do not want to re-invent the wheel or replace our inflexible system with a different inflexible one.

romaingar’s picture

Subscribe too..

Is this concept of Sub Service could manage DNS ?
Like this :
Server A (Master on nginx) sites url : mydomain.com, mobile.mydomain.com
Server B (Remote on apache) : abc.mydomain.com, def.mydomain.com... etc
Server C : mysql...

the problem (i have), is to manage my domain on remote servers (ip) without create a new entry in my dns configuration.
(sorry for my poor description, but i don't want mix notions...)
thanks

Steven Jones’s picture

@lecochien: There's already a DNS feature in Aegir that may do what you want, but this isn't the place to explain it or discuss it.

SqyD’s picture

The idea was to refactor aegirs webservice to allow for different types of WEBservices. (worker,ssl,proxy,cluster,etc). I don't think that would involve changing the dns service we have in place when we keep the idea of a webcluster.

When comparing Aegirs model of a webhosting platform to that of a more generalistic provisioning system it seems incomplete and over simplified. During the London BOF Anarcat recalled talking to Adrian about this and they concluded this approach may still seem very simplistic but it just might solve all practical problems we face with the current model without overhauling all of the current codebase for all services.

I've thought about this for some time now, reread some of the code and agree. Implementing the perfect OO model where every edge case is implementable will lead to another beast of a provisioning system. Let's KISS for now.

I hope to have time for some serious diving into this early next month. In the meantime I will produce some diagrams off the current and proposed service model. I'm also reworking some of the varnish logic I had in mind.

Renee S’s picture

Hi SqyD, have you had a chance to work on this at all? I'd be happy to comment on any diagrams or ideas going forward. This is a need for us and I'm kind of surprised, actually, that it isn't more common. Thanks!

SqyD’s picture

Sorry to say that I haven't been able to put time into Aegir for quite some time due to several professional en personal issues taking up my time. I plan to have a "personal code sprint" mid December to get my Drupal development back on track and hope to get some progress in these Aegir issues as well.

Steven Jones’s picture

Project: Hostmaster (Aegir) » Provision

There's a very tight coupling between the services in the frontend and the backend, but I think this issue is better handled in the backend so moving over there.

helmo’s picture

Version: 7.x-2.x-dev » 7.x-3.x-dev
Issue summary: View changes