Nginx 目前已經支援 HTTP/2 協定,但若在 listen 參數中使用一般的語法來做設定,Nginx 會讓所有的 virtual host 全部一起走相同的 HTTP 協定:
server { listen 443 ssl http2; # ... }
上面這個寫法,會讓所有 listen 443 的 virtual host 全部都走 HTTP/2。
要讓不同 host 使用不同 HTTP 協定,必須使用不同的 IP 來設定 virtual host:
server { listen IP:443 ssl; # ... } server { listen NEW_IP:443 ssl http2; # ... }
參考資料:Can I enable HTTP/2 for specific server blocks (virtual hosts) only, on Nginx?