代码之家  ›  专栏  ›  技术社区  ›  Ahmed

防止nginx为未经授权的用户将流量路由到另一个ec2实例

  •  0
  • Ahmed  · 技术社区  · 6 年前

    我让nginx服务器在ec2实例上运行。我使用TCP连接将流量从nginx路由到redis实例,配置文件如下:

    events{}
    stream {
      upstream redis {
      server **.***.***.**:80;
      }
        server {
        listen 80 so_keepalive=on;
        proxy_pass redis;
        }
    }
    

    根据这一点,每个人都可以访问我的redis实例,如果他们有nginx实例的ip地址,这是不安全的做法。有没有办法防止未经授权的用户被路由到我的redis数据库,即使他们知道nginx实例的ip地址?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jonas    6 年前

    是的,但是答案取决于用例。

    如果是少数用户,则可以使用(在一个位置块内)基于IP地址(该地址被认为是安全的)进行异常处理:

    allow allowed.ip.address.1;
    allow allowed.ip.address.2;
    deny all;
    

    具体执行情况见以下帖子:

    如果您需要将该服务提供给比您管理IP地址更多的用户,您可能需要查看nginx auth或类似的第三方: https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/