[英]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.