先前有一篇文章在講 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 的方式,來去增加服務可同時連線的數量,提供給各位朋友做參考。
參考資料
- 5 ways to set the URLs for an ASP.NET Core app
- Is it possible to make Nginx listen to different ports?
- Module ngx_http_upstream_module
- Using nginx as HTTP load balancer