标签: express-vhost

vhost ip filter express节点

我正在使用vhostexpress来管理两个子域.一切正常,但我想通过ip过滤其中一个子域的请求.你知道这是否可行?

我试着在我的子域名网站的app.js来管理它,但req.connection.remoteAddressreq.ip给我的服务器的IP.

当我只有一个子域并且不使用vhost时我有正确的ip,但是因为我使用了vhost我已经得到了我服务器的ip ...

这是我之前的文件夹结构:

-- subdomain1/
    -- app.js
    -- views/
Run Code Online (Sandbox Code Playgroud)

这是我的新结构:

-- subdomain1/
    -- app.js
    -- views/
-- subdomain2/
    -- app.js
    -- views/
-- manageSubdomain/
    -- app.js
Run Code Online (Sandbox Code Playgroud)

这是我的代码,它在使用vhost之前工作,并且只用于一个子域:

subdomain1/app.js:

var express = require('express');
var path = require('path');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
require('body-parser-xml')(bodyParser);

var routes = require('./routes/index');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after …
Run Code Online (Sandbox Code Playgroud)

node.js express express-vhost

5
推荐指数
0
解决办法
348
查看次数

NodeJS Express - 同一端口上的两个 NodeJS 实例(vhost)

我正在尝试从不同的server.js文件(不同的目录、配置等)在同一端口和服务器上运行 2 个 NodeJS 实例。我的服务器提供商给了我一个vhost针对不同域运行的信息,这就是问题所在。如何在 NodeJS Express 应用程序中处理它?我试过vhosthttps://github.com/expressjs/vhost像这样使用:

const app = express();
const vhost = require('vhost');

app.use(vhost('example1.org', app));

// Start up the Node server
app.listen(4100, () => {
  console.log(`Node server listening on 4100`);
});
Run Code Online (Sandbox Code Playgroud)

对于这样的第二个应用程序:

const app = express();
const vhost = require('vhost');

app.use(vhost('example2.org', app));

// Start up the Node server
app.listen(4100, () => {
  console.log(`Node server listening on 4100`);
});
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行第二个实例时,我得到了EADDRINUSE ::: 4100,所以 vhost 在这里不起作用。

在此处输入图片说明

你知道如何解决吗?

port vhosts node.js express express-vhost

2
推荐指数
1
解决办法
2325
查看次数

标签 统计

express ×2

express-vhost ×2

node.js ×2

port ×1

vhosts ×1