[小菜一碟] ASP.NET Core 及 Nginx 如何在一個服務上監聽多個 Port?

先前有一篇文章在講 Linux 上 Port 被用光了,導致系統無法使用的問題,其中一個解決的方法是「增加服務的 Listen Port」,我們的服務是用 ASP.NET Core 開發的,而 Nginx 則是當 Reverse Proxy 擋在前面,我們就來看一下 ASP.NET Core 及 Nginx 怎麼監聽多個 Port?

原先預想它應該會有需要一些調整的步驟,沒想到只要一個設定就搞定了,意外地簡單。

ASP.NET Core 監聽多個 Port

ASP.NET Core 有分是在開發時期,還是發佈時期,調整設定的地方不一樣。

開發時期

在開發時期我們可以修改 launchsettings.json 這個設定檔,在 applicationUrl 這個參數增加 URL 就行了。

發佈時期

當我們把服務發佈到 Production 之後,可以調整 ASPNETCORE_URLS 這個環境變數來增加監聽的 Port。

Nginx 監聽多個 Port

在 Nginx 上要監聽多個 Port,也是加一行設定就行了。

由於我們的 Nginx 只是拿來做為 Reverse Proxy 使用,那麼剛剛 ASP.NET Core 的服務有監聽多個 Port,在 Nginx 上要如何轉發 Request 到這些 Port 上面? 加個 upstream 設定上去就行了。

以上就是透過增加監聽 Port 的方式,來去增加服務可同時連線的數量,提供給各位朋友做參考。

參考資料

C# 指南ASP.NET 教學ASP.NET MVC 指引
Azure SQL Database 教學SQL Server 教學Xamarin.Forms 教學