On Tue, 26 Jul 2011 22:31:44 +0200, Henrik Nordström wrote:
mån 2011-07-25 klockan 13:57 +1200 skrev Amos Jeffries:
It seems to me that since we are advertising HTTP/1.1 the default
behaviour for accel mode should be vhost.
Agreed, defaults should match HTTP requirements, and Host awareness
is a
rather strong HTTP/1.1 requirement. The default in HTTP/1.1 is to
read
the Host header (unless URL is absolute) but a server MAY optionally
ignore the Host header if desired.
Corollary: do we want to go so far as to make it "http_port _
vhost"?
Not sure what you mean. vhost is an accelerator directive. Does not
make
sense in non-accelerator configurations.
I mean making the "mode" flag 'vhost' instead of 'accel'. Which means
we can drop accel and defaultsite= in one change to a parameterized
vhost.
Adding no-vhost increases the brokenness of that idea. I'm dropping it.
I think no to going this far since apache ip-based virtual hosting
requires the "http_port _accel vport" (no vhost, no defaultsite).
Which
is effectively; disobey Host header and use the listening
raw-IP:port as
relayed header value for IP based virtual hosting in Apache. Noting
that
this behaviour is an HTTP violation and may as easily break the
Apache
VirtualHost as help.
?
Not sure what feature in Apache you talk about here. Why would Apache
need Squid to turn GET /; Host: www.example.com into GET / ; Host:
172.16.32.54:80
Apache's IP-base virtual hosting. Where you set the public raw-IP:port
in the VirtualHost container. Instead of a domain name. Its a bit nasty
when working through a proxy, but still popular in tutorials.
2) merging vhost and defaultsite=FQDN options
Assuming (1) is done we can drop the defautsite= directive and some
confusion around what 'default' and 'site' mean by making vhost=FQDN
equivalent to 'vhost defaultsite=FQDN'.
defaultsite applies primarily to HTTP/1.0 requests without a Host
header. Without it such requests is not supported. I think it's name
is
very appropriate as it is.
Thoughts?
Make vhost default in accel mode, and deprecate the vhost directive
as
such-
Add a novhost directive to disable vhost if not wanted for some
strange
reason.
But please DO NOT do magic detection guessing if vhost default is
expected based on what other options are present. If it is made the
default (which is a good thing) then explicit action should be needed
to
turn it off, just as explicit action have been needed to turn it on.
As a side note there is ongoing http-wg discussions if the HTTP/1.1
specs should add a recommendation that servers should reject requests
with unknown Host components.
Haven't seen that one. Thanks.
Okay. Enacting (1). Leaving (2)
Amos