On Fri, Feb 19, 2016 at 02:22:35AM -0500, spyfox wrote: Hi there,
> server { > listen *:80; > server_name ~^i(?<instanceId>\d+)\.domain$; > ... Presumably later in this config, you do something with $instanceId, and you have a way to handle it not being set. > It works fine. I have single config to handle all requests for all > subdomains. > > I need to allow users specify custom domains as aliases, e.g.: > > i1.domain, super-user.com, another-domain.net -> user #1 > i2.domain, custom.domain -> user #2 > > How can I add aliases without copy/paste config for each user? Use "map" to turn your list of domains into the appropriate instanceId. Then change your server_name directive not to set that variable. Something like: map $host $instanceId { hostnames; default ""; ~^i(?P<a>\d+)\.domain$ $a; super-user.com 1; another-domain.net 1; custom.domain 2; } server { listen *:80 default; server_name whatever; ... # use $instanceId if it is set } You could also set the default $instanceId to a particular value that means "not set", and have the rest of the system use that value for an "unknown" account. The alternative approach would be to have a separate server{} block for each account, with lots of duplication that is handled by your config-generator-from-template system. But f you want a single server{} block, the above is probably the simplest way. Good luck with it, f -- Francis Daly fran...@daoine.org _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx