在同一端口上运行的多个sailsjs应用程序

时间:2017-02-07 11:24:26

标签: node.js sails.js reverse-proxy

我需要在端口上运行多个sails Web应用程序并运行一个小型服务器,以便按应用程序名称在它们之间进行路由。

使用下一个代码,我可以通过在端口3000之后添加应用程序名称来在它们之间进行路由。

var express  = require('express');
var app      = express();
var httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer();
var app1 = 'http://localhost:1337/',
    app2 = 'http://localhost:1338/'

app.all("/app1/*", function(req, res) {
    proxy.web(req, res, {target: app1});
});

app.all("/app2/*", function(req, res) {
    proxy.web(req, res, {target: app2});
});

app.listen(3000);

这个程序使重定向很好,但现在的问题是,如何将sailsjs中生成的链接更改为任何文件作为javascript和css文件? 非常感谢

1 个答案:

答案 0 :(得分:2)

  1. 安装nginx
  2. 在不同的端口上运行您的应用。
  3. 在Linux /etc/nginx/sites-available/default上(在Windows上有所不同,但可能很容易找到):
  4. -

    server {
        listen 80;
        server_name apps.dev/1;
    
        location / {
            proxy_pass http://localhost:3001;
            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;
        }
    }
    
    server {
        listen 80;
        server_name apps.dev/2;
    
        location / {
            proxy_pass http://localhost:3002;
            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;
        }
    }
    
    1. 您可以使用以下网址访问您的应用:apps.dev/1apps.dev/2
    2. 对于生产,您可以应用任何发往服务器的域。
    3. 对于本地开发人员,只需将虚拟主机设置为将任何内容从生产域重定向到本地nginx。