2017-10-05 64 views
0

在我的本地機器上,我建立了一個Web項目,就像在教程中一樣。 我已經安裝了XAMPP並使用MySQL和Apache來運行我的Node.JS後端。 現在,我即將使用外部服務器來託管項目並通過互聯網使其可用。Apache需要NodeJs嗎?

所以我必須設置服務器,我想知道爲什麼我需要Apache(來自XAMPP)來運行Node.JS後端?我認爲node.js本身就是一個Web服務器? 那麼用XAMPP重新設置外部服務器會是一個聰明的想法嗎?

當我想通過URL啓動index.html時,我也可以使用node.js來做到這一點嗎?

回答

1

不,你不需要一個Apache服務器。因爲Node本身將用作服務器尤其是如果您正在使用Express等框架。

你根本不需要Nginx或Apache,但你可以使用,如果你想。有些人使用Nginx來實現負載均衡,甚至是處理https或服務器靜態內容等其他內容,這是非常舒適的。這是你最後的選擇。

儘管如此,爲了獲得最佳性能,您可以將node.js與nginx結合使用,具體取決於應用程序的需求。 nginx在爲靜態文件提供服務方面做得更好,儘管靜態文件的最高性能來自使用CDN。大多數情況下,您將使用nginx作爲反向代理:網絡請求將由nginx接收,nginx充當幾臺相同或細分服務器前的負載均衡器。如果它需要服務器靜態文件,它將直接回答這些請求。

+0

該項目僅適用於某個員工,因此我認爲沒有多少人同時使用該Web應用程序(> 10)。後端正在使用一些谷歌服務,因此可能會有幾個請求/響應操作。你認爲nginx也需要這個嗎?我還沒有與nginx一起工作,直到 – WeSt

+0

不,你根本不需要Nginx服務器。您的普通節點服務器可輕鬆處理** Microserver **實例上的大約500個用戶。 – Sagar

+0

您的意思是[this](https://www.npmjs.com/package/microserver)與Microserver? – WeSt

0

您不一定需要Apache來運行Node.js,因爲它們都完成相同的事情 - 回答HTTP請求。

但是,他們是您可能一起使用它們的場景。例如,您可以使用Apache as a reverse-proxy來訪問Node.js後端服務器。甚至可以使用Node.js作爲Apache的反向代理。

+0

這種情況是當你不想在Node.js中監聽端口80時,但它已經被Apache使用,因爲你有其他需要Apache的項目,比如PHP網站,在這種情況下,你可以使用Apache作爲代理服務器,Node.js偵聽另一個端口。 –