net::ERR_HTTP2_PROTOCOL_ERROR 200 使用 http2 nginx 代理到 java spring boot 应用程序

问题描述 投票:0回答:1

我运行 CapRover 以在我的 java spring boot 嵌入式 tomcat 服务器上启用 https 和域。此 java 应用程序适用于 http2 以启用更多 SSE 事件。

没有代理也能正常运行

没有 CapRover/nginx 代理的应用程序运行良好(所以当我访问我服务器上的 ip:port 时)。

启用nginx代理时出错

当我使用 CapRover 添加 nginx 代理以在应用程序上启用 https/域时,几分钟后我在浏览器的控制台中收到此错误:

NS_ERROR_NET_PARTIAL_TRANSFER
在 FireFox 中。
net::ERR_HTTP2_PROTOCOL_ERROR 200
在 Chrome 中。

此错误发生在 SSE 流端点上。顺便说一句,在加载应用程序时,我在这些端点上收到 SSE 事件,因此端点可以正常工作。但是过了一段时间后好像出错了,可能是超时什么的?

这是我的 nginx 配置:

events {
}
http {
    server {
        listen 443;
        location / {
            proxy_pass https://MY_IP_ADDRESS_COMES_HERE:7372; 
        }
    }
}
spring-boot nginx http2
1个回答
0
投票

正确的指令是:

listen 443 ssl http2;

您应该通过添加这些指令来添加 SSL 密钥和证书的路径:

ssl_certificate ...;
ssl_certificate_key ...;

此外,您还需要以下指令:proxy_ssl_server_name 和 proxy_ssl_verify。 .

© www.soinside.com 2019 - 2024. All rights reserved.