在Nginx web服务器下的GRPC调用中获取504超时错误
我使用的是一元RPC方法。我有一个在nginxweb服务器下配置的服务器。以下是Nginx的配置:在Nginx web服务器下的GRPC调用中获取504超时错误,nginx,grpc,Nginx,Grpc,我使用的是一元RPC方法。我有一个在nginxweb服务器下配置的服务器。以下是Nginx的配置: server { listen 80 http2; server_name test.grpc.tester.local; access_log /var/log/nginx/test.grpc.tester.local.access.log; error_log /var/log/nginx/test.grpc.tester.l
server {
listen 80 http2;
server_name test.grpc.tester.local;
access_log /var/log/nginx/test.grpc.tester.local.access.log;
error_log /var/log/nginx/test.grpc.tester.local.error.log;
location / {
grpc_pass grpc://localhost:8001;
}
}
我有一个客户端,它也可以在同一台主机上使用。我以几种方式调用了这个一元方法,我有以下观察结果:
- 在Nginx的错误日志中:
从上游读取响应头时上游超时(110:连接超时)
- 在客户端日志中:
错误:1已取消:收到状态为504的http2标头
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;
有人能指导我如何解决这个问题吗
谢谢。我遇到了相同的问题,似乎通过以下配置得到了修复
location /grpweburl
{
proxy_pass http://localhost:5000/grpweburl;
proxy_request_buffering off;
proxy_buffering off;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
}
请注意-我正在使用grpc网络。不仅仅是grpc。但我怀疑添加缓冲设置会像对我一样解决您的问题
我不确定为什么这种组合会起作用,但对我来说确实如此。缓冲部分用于确保数据更新立即发送到客户端
结合超时设置,如果grpc服务没有给出结果,我现在只能每隔10分钟从nginx获得一个http-504。正如所料
为了不干扰正常操作,我只为grpc web url设置了这些配置设置