【问题标题】:deploying Node.js app for production为生产部署 Node.js 应用程序
【发布时间】:2016-08-31 21:03:29
【问题描述】:

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

【问题讨论】:

    标签: node.js


    【解决方案1】:

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

    由于您无法将 apex 域与CNAME 绑定,因此您必须指定一个或多个服务器 IP 或负载平衡器的 IP

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          另一种方法是重定向:

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

          问候。

          【讨论】:

            【解决方案5】:

            使用 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;
            

            }

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-09-21
              • 1970-01-01
              • 2015-05-19
              • 2014-10-12
              • 2016-06-11
              • 1970-01-01
              • 2017-08-11
              • 2012-08-07
              相关资源
              最近更新 更多