Asp.net
如何將基於 ASP.NET Web API 和瀏覽器的應用程序部署到生產環境
可能重複:
我們有一個提供 SQL Server 數據驅動網站的 ASP.NET Web API 伺服器。API 使用 JSON 將數據從 SQL Server 傳輸到前端。
我們需要將其轉移到內部生產環境(公共 Internet 上不會公開任何內容)並且我們遇到了問題 - 或者只是不了解需要做什麼。
有兩個域:
- 公司域 - 所有使用者正常登錄的地方。
- 程序域 - 包含 Web API 需要訪問的數據庫。
IT 人員希望在兩個域之間放置一個 DMZ 以容納 IIS 應用程序並保護公司域上的使用者無法直接訪問程序域。
理想的配置是:
corp domain (end users) <–> firewall (open port 80) <–> DMZ (web server running IIS) <–> firewall (open port 80 or 1433????) <–> process domain (IIS for Web API and SQL Server)
我們並不真正了解如何在這種情況下部署我們的瀏覽器/Web API 應用程序。
- 我們是否需要分解我們的應用程序,以便所有客戶端程式碼都在 DMZ 中的 IIS 伺服器上,而 Web API 安裝在程序域中的伺服器上?
- 整個應用程序(客戶端程式碼和 Web API)是否一起保存在 DMZ 中的 IIS 伺服器上,然後以某種方式訪問 SQL Server 實例以獲取數據?
- 從 DMZ 中的 IIS 伺服器和應用程序,您是否只需通過以下方式訪問程序域中伺服器上的 Web API
http://server/appname/api/getitmes
?- 在 DMZ 和程序域之間的第二個防火牆中,您必須打開埠 1433 還是只打開埠 80,因為 Web API 是 HTTP 端點?
- 或者,是否有更好的部署方式(即,如何將全部用 HTML5 和 JavaScript 編寫的 ASP.NET Web API 單頁應用程序部署到生產環境?)?
注意:伺服器是 Win2k8 R2、SQL Server 2k8 R2 和 IIS 7.5。
通常來說,您的程式碼將部署在 IIS 伺服器上。這意味著您的“web api”和網站。
坦率地說,我不認為您在這裡使用正確的術語,因為您似乎在說的是您有一個與 Web 服務通信的網站,然後該網站與 sql 伺服器通信以進行數據訪問。
Web 服務和網站將位於 DMZ 之外的一台或多台 Web 伺服器上。數據庫伺服器將位於 DMZ 內。DMZ 應配置為僅允許來自您的 Web 伺服器的請求進入數據庫伺服器。通常通過埠 1433 或 SQL 配置使用的任何埠。
在 DMZ 之外,應設置防火牆以限制對埠 80 或 443 上的 Web 伺服器的訪問。如果不是 SSL,則為 80,如果啟用了 SSL,則為 443。