背景介紹:因為公司最近使用TraeFik來代替nginx做代理服務器。導致一些老項目訪問Grpc的時候直接Status(StatusCode=Unavailable, Detail="failed to connect to all addresses") ,出現地址未找到的錯誤,沒辦法,問題已經出來了。苦逼的解決之路就開始了
備注: **** 是對應的host
// 使用 TraeFik
var channel = new Channel("********",端口號, ChannelCredentials.Insecure);
// 使用nginx
//var channel = new Channel("********", ChannelCredentials.Insecure);
// 調用https的方式
//var channel = new Channel("*********", new SslCredentials());
原因:在使用nginx做代理的時候,nginx中已經做好了端口轉發,所以在鏈接中不需要帶上端口號,但是使用TraeFik的時候,TraeFik沒有配置對應的端口,所以在請求的時候需要加上對應的端口,才能正確的轉發到對應的端口,ps:(當然,以上如果是直接使用Ip加端口的話不會出現問題,使用host的才會有對應的問題)