繁体   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