server_name host order

Maxim Dounin mdounin at mdounin.ru
Wed Nov 23 13:43:34 UTC 2011


Hello!

On Wed, Nov 23, 2011 at 05:30:46AM -0500, token wrote:

> Hello, I would like to know if this is correct
> 
> Will NGINX allways return the first of the provided hostname name in
> from the `server_name` as beign the "SERVER_NAME",
> 
> eg server_name hostname1 hostname2;

The $server_name variable is always first name as defined by the 
"server_name" directive in the server{} in question.

With default fastcgi_params as shipped with nginx, SERVER_NAME as 
passed to php via fastcgi will be set to $server_name, i.e. first 
name defined with the "server_name" directive.

> I have two server blocks in this example 
> 
> server {
> 	listen 80;       
>         server_name www.example.co.uk *.example.co.uk;
> }
> 
> the URI = http://something.example.co.uk/
> 
> // PHP APPLICATION -------------- 
> I see as expected   `SERVER_NAME` and `HTTP_HOST`
> 
> SERVER_PORT =>  80                  
> SERVER_NAME =>  www.example.co.uk
> HTTP_HOST   =>  something.example.co.uk
> --------------
> 
> server {
>       listen  443;
>       server_name  www.example.co.uk secure.example.co.uk;
> }
> 
> // PHP APPLICATION -------------- 
> again the `SERVER_NAME` and `HTTP_HOST` as i would expect
> 
> the URI = https://secure.example.co.uk/
> 
> //  SERVER_PORT =>   443
> //  SERVER_NAME =>   www.example.co.uk
> //  HTTP_HOST   =>   secure.example.co.uk

Yes, this is correct and expected behaviour.

Maxim Dounin



More information about the nginx mailing list