【问题标题】:Block private port NGINX reverse proxy with 2 express apps使用 2 个快速应用程序阻止私有端口 NGINX 反向代理
【发布时间】:2016-01-18 22:52:32
【问题描述】:

我试图在同一台服务器上运行两个快速应用程序(一个是公共 API,另一个是与数据库通信的私有 API)。

我已将 nginx 设置为反向代理到我在端口 3000 上运行的公共快递应用程序,该应用程序具有来自数字海洋的私有 IP。

我的公共快递应用向私有 api 发送请求(在端口 3030 上运行)

当我转到我的域 example.com:3030/users - 我可以看到我的所有用户。 (坏的)。

如何从公众(即:website.com/:3030/API-ROUTE)锁定端口 3030?

nginx 设置:

server {
    listen 80;

    server_name 123.456.78.910;

    root /srv/www;

    location / {
        root /srv/www/public;
        try_files $uri/maintenance.html @node_app;
    }

    location @node_app {

        proxy_pass http://98.765.4.32:3000;
        proxy_http_version 1.1;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

公共 API

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello public World!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

私有 API

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello Private World!');
});

app.listen(3030, function () {
  console.log('Example app listening on port 3030!');
});

【问题讨论】:

    标签: node.js express nginx


    【解决方案1】:

    您可以在多个层次上锁定对该端口的访问。

    首先,在 Node.js 中,您可以告诉您的 Node.js 应用绑定到特定的 IP 地址,即 127.0.0.1:

    app.listen(3030, '127.0.0.1');
    

    接下来,您可以在操作系统级别锁定访问权限。例如,在 Ubuntu Linux 中,您可以使用 ufw 定义一条规则,只允许从 localhost 访问此端口。

    最后,外部设备上其他地方的防火墙规则可以限制访问。例如,使用 AWS 安全组,您可以定义一条规则,即仅允许从该组中的其他服务器访问端口 3030 到特定组中的服务器——并且该组中可能只有一个服务器。

    另一种方法是listen on a Unix socket 而不是 IP 地址。

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2021-05-22
      • 2020-08-12
      • 1970-01-01
      相关资源
      最近更新 更多