簡體   English   中英

如何在Ngnix上為生產環境配置Node.js

[英]How to config nodejs for production enviroment on ngnix

我必須使用angularjs和nodejs開發一個聊天系統。 要發送和接收消息,我使用socket.io。 對於節點js,我使用localhost cmd創建nodejs服務器。

這工作正常,但現在我必須將其付諸實踐。

所以我不明白如何將Node.js代碼實時發布

我有節點js工作的vps服務器

這是我的angularjs系統網址

https://app.twodegrees.io/#/

這是套接字工作的nodejs服務器鏈接

https://app.twodegrees.io:8080/socket.io/socket.io.js

所以我的問題是:我如何在ngnix服務器上使用nodejs代碼進行生產環境謝謝

一種方法是將nginx配置為反向代理。 這會將到達您服務器的請求重定向到該服務器上運行的nodeJs應用程序。

這是一個示例塊,您可以將其添加到/etc/nginx/sites-available/default文件中,該塊會將請求從app.twodegrees.io重定向到本地計算機上的端口3000。

server {
    listen 80;

    server_name app.twodegrees.io;

    location / {
        proxy_pass http://localhost:3000;
        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;
    }
}

有關更多詳細說明,您可以在此處關注該帖子: https : //www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu- 14-04

您能提供您的目錄結構嗎? 我認為這取決於您是否希望通過nginx或nodejs服務您的前端...

據我了解,以上示例配置僅在nodejs服務於前端時才適用。

  1. 在您的node.js后端應用程序中創建一個名為public的新目錄,並將其放在整個前端應用程序中
  2. 添加app.use(express.static(__dirname + '/public')); 致電之前,請在server.js listen

更新:

角度前端的配置

server {
    listen 80;
    server_name app.twodegrees.io;
    root /usr/share/html;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

Socket.io后端的配置

server {
    listen 80;

    server_name socket.twodegrees.io;

    location / {
        proxy_pass http://localhost:3000;
        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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM