簡體   English   中英

將node.js應用程序部署到linux服務器時是否必須要使用Nginx?

[英]Is that Nginx must be required when deploying node.js app to linux server?

我制作了node.js應用程序,因此只剩下了部署部分,我想將其部署到Ubuntu服務器,所以我購買了虛擬服務器托管。

首先,我認為這很簡單,因為只需將我的代碼推送到服務器,然后運行app.js 也許沒有那么困難。 所以我搜索了Google的一些相關文檔,然后發現了這一點: https : //www.phusionpassenger.com/library/walkthroughs/deploy/nodejs/ownserver/nginx/oss/trusty/deploy_app.html

該文檔包含有關nginx和乘客內容的說明,我不知道為什么會這樣。 我應該在Linux主機上安裝nginx嗎? 我認為與安全原因有關嗎?

不,您不需要在Node.js服務器之前運行Nginx。 向您的主機提供商咨詢向公眾開放了哪些端口,並使您的node.js應用監聽該端口。

Nginx默認監聽端口80(默認的http端口)。 嘗試使您的節點應用也監聽該端口

不,但是我認為這是一個好習慣! Nginx是輕量級,快速,安全且可擴展的Web /代理服務器。 世界上最繁忙的網站使用NGINX! 它將作為服務運行,它將偵聽所有來自外部(Internet)的流量,在您的情況下,您希望告訴它偵聽Web(端口80)流量,並將其重定向到您的NodeJS。應用(例如在端口8000上運行); 這確實是一個不錯的主意,它是透明的,並且,如果調整得當,它將為您的網站增光添彩! 此外,Nginx非常適合用於Web和移動應用程序交付。 nginx的安裝和配置非常簡單,您應該將類​​似於以下示例的內容集成到其中,以使您的應用程序可以訪問Internet。

所以你可以:

將NodeJS應用程序保留為在本地運行,並嘗試在Linux Server中安裝nginx並將代理在端口80上的流量代理到localhost:8000(例如端口8000)。 像這樣:

server {
listen 80;
server_name www.yoursite.com;
client_max_body_size 1000M;

location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 1000;
proxy_read_timeout 1000;
proxy_pass http://127.0.0.1:8000/; # This is the trick !
proxy_buffering off;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';
}

}

Nginx只是一個Web代理服務器。 在您要使用兩個后端服務器並在它們之間進行負載平衡之前,與Ngnix無關。 您的節點應用程序應完全獨立運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM