Would "root" allow for captures?


#1

i’d like to do something like:

server {
listen 80;
server_name *.user.foo.com;
root /home/user/web/$1;
}

this would be basically required too:

server {
listen 80;
server_name *.user.foo.com;
root /home/user/web/$1;
if ($1 == 'something) {
require include.conf;
}
}

it would be nice if i could assign “user” as a variable too. however,
that would be a double bonus.

i think alias allows captures, but i would need to define
DOCUMENT_ROOT then as well.

ideas?


#2

perhaps this?

On Fri, Apr 10, 2009 at 12:24 PM, Michael S. removed_email_address@domain.invalid
wrote:

i’d like to do something like:

server {
 listen 80;
 server_name .user.foo.com;
server_name (.
?).user.foo.com;


#3

On Thu, Apr 09, 2009 at 10:24:12PM -0700, Michael S. wrote:

i’d like to do something like:

server {
listen 80;
server_name *.user.foo.com;

 server_name ~^(.+)\.user\.foo\.com$;
  require include.conf;

}
}

This i ssome kind of configuration macro, but it’s currently not easy
to implement this.

it would be nice if i could assign “user” as a variable too. however,
that would be a double bonus.

i think alias allows captures, but i would need to define
DOCUMENT_ROOT then as well.

The “root” supports captures too.


#4

2009/4/9 Igor S. removed_email_address@domain.invalid:

  server_name ~^(.+).user.foo.com$;

awesome! it works.

  if ($1 == 'something) {
   require include.conf;
  }

This i ssome kind of configuration macro, but it’s currently not easy
to implement this.

really? why is that? seems like it should be pretty straightforward,
but you know your code the best.

The “root” supports captures too.

just figured that out - excellent :slight_smile:


#5

On Thu, Apr 9, 2009 at 11:11 PM, Michael S. removed_email_address@domain.invalid
wrote:

This i ssome kind of configuration macro, but it’s currently not easy
to implement this.

This would also work

include /etc/nginx/$1.conf;

but I would want to test for the existence first.

if (-f /etc/nginx/$1.conf) {
include /etc/nginx/$1.conf;
}

so it is not easy to do if ($1 == ‘something’) {} ? if so, then we
just need to say that include is allowed inside of an if block :slight_smile: