繁体   English   中英

部署Node.js应用程序进行生产

[英]deploying Node.js app for production

我遇到的大多数教程中,您通过将服务器设置为侦听端口来设置Node.js Web应用程序,并通过指定该端口在浏览器中访问它。但是,我将如何部署节点。通过像foobar.com这样的域名来完全访问js app?

您必须将您的域的apex (naked domain)和通常www与您的Web服务器的IP或它的CNAME绑定。

由于您无法使用CNAME绑定apex域,因此必须指定服务器IP或IP或负载平衡器的IP

您的问题有点模糊..如果您的DNS已经配置,您可以绑定到端口80并完成它。 但是,如果您已经在端口80上运行apache或其他一些httpd来为其他主机提供服务,这些主机显然无效。

如果您希望以非root用户身份运行节点进程(并且您应该),那么您更有可能正在寻找反向代理。 我的主要httpd是nginx,相关选项是proxy_pass。 如果你正在使用apache,你可能想要mod_proxy

我刚刚在我的注册商处创建了一个“A记录”,指向我的Web服务器的IP地址。 然后,您可以在端口80上启动节点应用程序。

另一种方法是重定向:

http://www.foobar.comhttp://www.foobar.com:82

问候。

使用pm2在服务器上运行节点应用程序。

然后使用Nginx代理您的节点服务器。 我知道这听起来很奇怪,但这就是它的完成方式。 最终,如果您需要设置负载均衡器,您也可以在Nginx中完成所有这些操作。

server {
listen 80;

server_name example.com;

location / {
    proxy_pass http://APP_PRIVATE_IP_ADDRESS:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

这是我在设置node.js进行生产时发现的最好的教程。

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04

为了提高性能,您还设置了nginx来提供公共文件。

location /public {
    allow all;
    access_log off;
root /opt/www/site;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM