2015-03-31 20 views
18

Sau một số nghiên cứu, tôi đã rất ngạc nhiên khi tôi không tìm thấy bất kỳ tài nguyên nào về hỗ trợ HTTP/2 trong Tomcat. Changelogs của 8,0 cho thấy một hỗ trợ thử nghiệm của SPDY và ​​wiki đề cập đến HTTP/2 như là một spec được hỗ trợ (http://wiki.apache.org/tomcat/Specifications) nhưng tôi không tìm thấy bất kỳ hướng dẫn về nó.Hỗ trợ HTTP/2 trong Tomcat 8

Bạn có biết liệu có thể bật HTTP/2 trên Tomcat không? Nếu câu trả lời là có làm thế nào tôi có thể làm điều đó?

+0

Có một câu hỏi ở đây? Ý tưởng về những gì? Tôi hy vọng bạn không yêu cầu nơi tìm tài liệu ... bởi vì đó là off-topic !! –

+0

Tôi đã thêm câu hỏi một cách rõ ràng ... –

+0

có thể trùng lặp của [Cấu hình SPDY trên cửa sổ tomcat 8] (http://stackoverflow.com/questions/28795470/configure-spdy-on-tomcat-8-windows) –

Trả lời

20

Tomcat chưa hỗ trợ HTTP/2.

Hỗ trợ HTTP/2 được lên kế hoạch cho Tomcat 9 trở đi. Nó có thể được chuyển trở lại các phiên bản trước đó.

Hỗ trợ SPDY thử nghiệm chỉ là: thử nghiệm. Nó hoạt động trong khi các trình duyệt hỗ trợ phiên bản SPDY cụ thể nhưng hiện tại không có trình duyệt nào hỗ trợ phiên bản SDPY do Tomcat triển khai.

Hỗ trợ thử nghiệm SPDY đó đã bị xóa khỏi Tomcat 8.0.22, được ghi chú trong changelog.

4

HTTP/2 Support hiện khả dụng trong Tomcat. Tomcat-8.5 hỗ trợ HTTP/2. Để bật HTTP/2 trong tomcat-8.5 hoặc cao hơn, bạn cần nâng cấp giao thức trình kết nối trong tệp server.xml trong thư mục conf tomcat.

<Connector ... > 
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> 
</Connector> 

Bạn cũng cần thiết lập cấu hình giấy chứng nhận SSL để hoạt động với trình kết nối này.

+1

Cảm ơn! Làm thế nào để bạn thực hiện đẩy máy chủ? –

+0

Đẩy máy chủ có thể được thực hiện bằng cách sử dụng API PushBuilder trong Java. –

+0

Vì vậy, nó có nghĩa là không có API gốc có thể được sử dụng và do đó servlet 4 là bắt buộc? Ngoài ra nếu tuyên bố này là đúng, chúng ta có thể tận dụng lợi thế từ máy chủ-push chỉ trong tomcat 9 bởi vì có vẻ như tomcat 8,5 vẫn sử dụng servlet 3.1? –

7

Tomcat 8.5 đã được phát hành với các tính năng được chuyển tiếp từ Tomcat 9 và bao gồm hỗ trợ HTTP/2.

Tôi chưa có cơ hội thiết lập HTTP/2 trên Tomcat 8.5, vì vậy tôi không thể nhận xét về "cách thực hiện".

+0

Cách thực hiện tại đây: https: //tomcat.apache .org/tomcat-8.5-doc/config/http2.html – Paul

0

để cho phép http2 cho tomcat8.5.x,

@Bean 
     public EmbeddedServletContainerCustomizer tomcatCustomizer() { 
     return container -> { 
      if (container instanceof TomcatEmbeddedServletContainerFactory) { 
       ((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> { 
        connector.addUpgradeProtocol(new Http2Protocol()); 
       }); 
      } 
     }; 
    } 
Các vấn đề liên quan