【问题标题】:Deplyong on DigitalOcean with NodeJs diffculty在 DigitalOcean 上部署 NodeJs 困难
【发布时间】:2021-04-14 13:16:32
【问题描述】:

您好,我最近在使用heroku,但由于价格更好,我决定换成数字海洋。

我部署了数字海洋,确保将环境设置为生产环境。

一切似乎都很好 但是当我打开实时应用时,它只是一个空白屏幕,而不是我的网站。

有没有人可以为我指明正确的方向?


if(process.env.NODE_ENV === 'production'){
  console.log('Production Enviroment')
  app.use(express.static(path.join(__dirname, 'build')))

 

  }

  app.get('*', (req,res) =>{
    res.sendFile(path.join(__dirname+'/build/index.html'));
});
const port = process.env.NODE_ENV === 'production' ? process.env.PORT : 4000;
app.listen(port, () => {
    console.log('Server listening on port ' + port);
});

【问题讨论】:

    标签: node.js deployment digital-ocean production


    【解决方案1】:

    您需要查看 NGINX 或以某种方式让您的应用程序在 PORT / 4000 上显示在端口 80 上(http 或 433 上)。当您点击您的 IP 地址时,您的网络浏览器实际上能够看到端口 80 / 443。很多人,包括我自己,都使用 NGINX 进行端口转发、代理和负载平衡。这是一个小的学习曲线,但我推荐它比 Heroku 多 100 倍。

    首先,您需要在 Ubuntu 服务器中安装 NGINX(假设您使用 Ubuntu 机器在 Digital Ocean 上托管您的网站)

    sudo apt-get update
    sudo apt-get install nginx
    

    完成后,您应该能够在浏览器中导航到您的 IP,您将看到有关 NGINX 的一些信息。

    现在您可以根据自己的喜好更新 NGINX 配置文件。您可以使用 nanowget 之类的东西来编辑配置文件。里面有很多crud和cmets,我一般都删掉。

    sudo nano /etc/nginx/sites-available/default
    

    您的配置现在可以很简单。这是我捡到的样板。将proxy_pass 更改为正确的端口。

    server {
      listen       80;
      server_name  localhost;
    
      location / {
        proxy_pass http://localhost:4000;
        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;
      }
    }
    

    保存该配置文件,您应该能够使用以下命令重新启动 NGINX,然后交叉手指通过在浏览器中点击您的 IP 地址来查看您的应用程序:

    sudo service nginx restart
    

    在我写这个答案的时候,我在这里找到了一篇关于整个过程的文章:https://www.sitepoint.com/configuring-nginx-ssl-node-js/

    【讨论】:

    • DigitalOcean 还有一个很棒的工具,可以帮助您完成所有这些设置here
    • 在 NGINX 文件中是我更改 process.env 变量的地方吗?
    • 不,您需要在节点项目cd /path/to/your/project touch .env sudo nano .env 的根目录中创建和更新 .env 文件,然后为其提供正确的变量。完成后重新启动您的节点服务器。
    猜你喜欢
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多