Hello,

I already posted this at Stack Exchange here:

https://serverfault.com/questions/957276/why-is-a-directive-within-a-virtual-host-considered-global


For sake of persistence, I quote the essential of the question here.

The documentation of the H2Upgrade directive in the httpd documentation about HTTP/2 says that

    This should be used inside a <VirtualHost> section to enable Upgrades to HTTP/2 for that virtual host.

I have two virtual hosts, both listening on plain HTTP only. This is my httpd config:

<VirtualHost *:80>
    Protocols h2c http/1.1 http/1.0
    H2Upgrade on
    DocumentRoot /var/www/
</VirtualHost>

<VirtualHost *:80>
    Protocols h2c http/1.1 http/1.0
    H2Upgrade off
    ServerName test.mydomain.loc
    DocumentRoot /var/www/apps
</VirtualHost>

Tests with curl show that with varying the host name, the correct virtual host is chosen (it is easy to tell them apart, as they have different document root directories).

curl --http2 -vLo- 'http://test.mydomain.loc/test.html'

However, only the directive H2Upgrade in the first (default) virtual host is used for both virtual hosts. In the second virutal host, the directive is completely useless.


This is a Debian Linux 9.8 with httpd 2.4.25, so it is not the newest version. Since I do not have time to compile httpd on my own, I want to ask if:

* This issue is known and may be already fixed in a newer version?

* Or if this issue is not known, and it is a new bug I found?

* Or if this is not a bug, but then there is something I really do not understand. Maybe someone can tell me what I did wrong.


Kind regards,

rexkogitans


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to