On 20 Oct 2017 11:17, André Warnier (tomcat) wrote:

On 20.10.2017 10:50, Ben RUBSON wrote:
On 20 Oct 2017 10:38, André Warnier (tomcat) wrote:

On 19.10.2017 22:02, John Dunlap wrote:
To piggy back onto this question, what is the best way to do this such that the values of the variables are different for every virtual host? In our model, all virtual hosts shared the same interpreter pool but we need to have different configuration variables on a per
virtualhost basis. Currently, we are using PerlSetVar for this purpose.

And that seems the right way to me.

What about a startup file, as proposed by Adam, which would return John's configuration variables according to $ENV{'SERVER_NAME'} ? (using a switch/case for example) Each virtualhost would then have its own configuration variables, having a uniq startup
file for the whole server.

Would it be more performant than the PerlSetVar solution ? (doc sometimes warns about
PerlSet* performance)
I believe that there is much more of a performance hit, when asking the server to set up an environment ($ENV) for sub-processes, than via the PerlSetVar mechanism.

(...)

In comparison, the mechanism involving the environment has to set up this environment repeatedly (at least each time a new Apache sub-process is started).

Thank you for your deeply detailed answer André !

I think mod_perl already sets $ENV by default, at least $ENV{'SERVER_NAME'} is set.
Is there an additional cost to simply read $ENV{'SERVER-NAME'} ?
Goal would then be to set another variable according to it.

(that said, there is also $s->server_hostname() to retrieve server name)

It seems much more maintainable (and documentable) to have everything in one place.

I agree :)

Thank you !

Ben

Reply via email to