我需要在端口上运行多个 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 文件? 非常感谢
最佳答案
- 安装nginx
- 在不同端口上运行您的应用。
- 在 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/1
或apps.dev/2
- 对于生产,您可以应用寻址到服务器的任何域。
- 对于本地开发人员,只需设置虚拟主机以将任何内容从生产域重定向到本地 nginx。
关于node.js - 多个 sailsjs 应用程序在同一端口上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42088628/