我运行 CapRover 以在我的 java spring boot 嵌入式 tomcat 服务器上启用 https 和域。此 java 应用程序适用于 http2 以启用更多 SSE 事件。
没有 CapRover/nginx 代理的应用程序运行良好(所以当我访问我服务器上的 ip:port 时)。
当我使用 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;
}
}
}
正确的指令是:
listen 443 ssl http2;
您应该通过添加这些指令来添加 SSL 密钥和证书的路径:
ssl_certificate ...;
ssl_certificate_key ...;
此外,您还需要以下指令:proxy_ssl_server_name 和 proxy_ssl_verify。 见.