我有一个 gRPC 服务,我想将其部署在 Apache 反向代理后面。
apache的配置类似如下:
LoadModule http2_module modules/mod_http2.so
LoadModule proxy_http2_module modules/mod_proxy_http2.so
...
<VirtualHost _default_:443>
SSLEngine on
SSLProxyEngine on
ServerName service.mydomain.com:443
SSLCertificateFile ".../mycert.crt"
SSLCertificateKeyFile ".../mycert.key"
ProxyPass / h2c://localhost:5048/
ProxyPassReverse / http://localhost:5048/
</VirtualHost>
一元 RPC-s 工作正常。但我想使用双向调用。这些调用永远不会结束,超时后我会收到错误。
我尝试了多次,包括增加超时时间等,但都没有成功。
可能是什么问题呢?
答案1
ProxyPass
尝试将和指令更改ProxyPassReverse
为以下内容
ProxyPass "/" "h2://localhost:5048/"
ProxyPassReverse "/" "h2://localhost:5048/"
您可能还需要调整Timeout
和ProxyTimeout
指令以确保请求有足够的时间完成。您可以尝试增加这些值以查看是否能改善行为。
Timeout 600
ProxyTimeout 600