node.js - 多个 sailsjs 应用程序在同一端口上运行

标签 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. 安装nginx
  2. 在不同端口上运行您的应用。
  3. 在 Linux 上 /etc/nginx/sites-available/default(在 Windows 上有所不同,但可能很容易找到):

--

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;
    }
}
  • 您可以使用以下方式访问您的应用:apps.dev/1apps.dev/2
  • 对于生产,您可以应用寻址到服务器的任何域。
  • 对于本地开发人员,只需设置虚拟主机以将任何内容从生产域重定向到本地 nginx。
  • 关于node.js - 多个 sailsjs 应用程序在同一端口上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42088628/

    相关文章:

    node.js - sails : disable `blueprints actions` in production, 因为它创造了巨大的安全足迹?

    Apache 在无限循环中运行,请求 URI 太长

    caching - 服务于 Varnish 中的多个部位

    javascript - Puppeteer HTML to PDF 不应用外部 css 文件

    linux - 将node.js + expressjs应用程序的NODE_ENV设置为ubuntu下的守护进程

    node.js - 为什么这个 coffeescript 代码总是返回 true?

    node.js - Visual Studio Node : debug into Worker Threads (node 11)

    node.js - 如何使用示例在端口 80 上运行 sails.js 应用程序?

    sails.js - 将数据传递到 sailsjs 中的默认 Controller

    ssl - Nginx 反向代理到 Heroku 的 SSL 握手失败