An error with the docs of $host
Ruslan Ermilov
ru at nginx.com
Fri Nov 30 10:36:07 UTC 2012
On Fri, Nov 30, 2012 at 06:05:42PM +0800, 姚伟斌 wrote:
> Hi Ruslan,
>
> Most of the content is fine for me. Could you add a line like that the
> variable $host exclude the port explicitly? I know the host should mean the
> server name, not include the port.
: GET http://example.com:12345/uri HTTP/1.1
: Host: example.net:54321
results in $host being set to "example.com", while
: GET /uri HTTP/1.1
: Host: example.net:54321
results in $host being set to "example.net", as required by
http://tools.ietf.org/html/rfc2616#section-5.2
If I say about port stripping in case #2, should I say about
requestURI stripping to extract the "host" part? I'd like
to avoid detailing it too much, and in my opinion "host from
the ..." fits both cases.
> It just confuses me when I use the
> directive like this:
>
> proxy_set_header Host $host;
>
> But the port is missing.
That is understood. The previous description was incorrect.
Thanks for noticing.
> Maybe I shoud use the $http_host instead.
It depends on what you need.
> 2012/11/30 Ruslan Ermilov <ru at nginx.com>
[...]
> > How's this instead?
> >
> > %%%
> > Index: xml/en/docs/http/ngx_http_core_module.xml
> > ===================================================================
> > --- xml/en/docs/http/ngx_http_core_module.xml (revision 775)
> > +++ xml/en/docs/http/ngx_http_core_module.xml (working copy)
> > @@ -2754,8 +2754,10 @@
> >
> > <tag-name id="var_host"><var>$host</var></tag-name>
> > <tag-desc>
> > -<header>Host</header> request header field,
> > -or the server name matching a request if this field is not present
> > +in this order of precedence:
> > +host from the request line, or
> > +host from the <header>Host</header> request header field,
> > +or the server name matching a request
> > </tag-desc>
> >
> > <tag-name id="var_hostname"><var>$hostname</var></tag-name>
> > %%%
More information about the nginx
mailing list