為什麼領事發現在本機上返回 https,但在伺服器上只回傳 http?

為什麼領事發現在本機上返回 https,但在伺服器上只回傳 http?

我透過 hashcorp consul 測試了兩個場景

1.我在.net7上透過hashicorp consul實現了服務發現,但是當我想從consul獲取服務地址時,它只返回該服務的http而不是https。我透過 docker 上的註冊器註冊了我的服務,並透過 .net dockerized 發現了服務。

2.但是我在本地主機上測試了這個場景,我在本地主機上實現了兩個api,並在docker伺服器上運行的consul上註冊了其中一個,我發現當我透過consul從api2發現api1時,我請求了api1的https,但consul切換並將其更改為 http 並且它可以工作,我得到了結果。但我的伺服器上的相同情況(場景1)不起作用

我的實現:

services.AddServiceDiscovery(選項=>選項.UseConsul());

//HttpClinetFactory services.AddHttpClient("DiscoveryRandom").ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler { ServerCertificateCustomValidationCallbackback = (sender, cert,,idain,ssl,a);

// 我注入:IHttpClientFactory clientFactory

_httpClient = clientFactory.CreateClient("DiscoveryRandom");

_httpClient.BaseAddress = new Uri($"https://{領事上的ServiceName}");

// 我的場景 1 的應用程式設定由伺服器上的 docker 完成註冊,我只是透過 consul 發現了它:

"$schema": "https://steeltoe.io/schema/latest/schema.json", "Consul": { "Host": "10.200.8.178", "Discovery": { "Register": false } }

// 我自己在本機上註冊的場景 2 的應用程式設定:

// 設定 api1 在 consul 上註冊

"$schema": "https://steeltoe.io/schema/latest/schema.json", "Consul": { "主機": "10.200.8.178", "發現": { "註冊": true, " serviceName": "TestConsul", "hostName": "localhost", "port": 7141, "deregister": false } }

// 以及服務發現 api2 的設置

"$schema": "https://steeltoe.io/schema/latest/schema.json", "Consul": { "Host": "10.200.8.178", "Discovery": { "Register": false } }

相關內容