【问题标题】:Nginx reverse proxy config whitelist IPNginx反向代理配置白名单IP
【发布时间】:2020-07-10 17:29:08
【问题描述】:

我正在将 Nginx 反向代理与 Kubernetes 服务一起使用。配置如下:

    events {
    }
    http {
          upstream my-service-3000 {
              server my-service:3000;
          }
        server {
              listen 443 ssl;
              server_name myserver.net;
              ssl_certificate     /key.pem;
              ssl_certificate_key /key.pem;
              location / {
                    allow myIP;
                    deny all;
                    proxy_pass http://my-service-3000;
              }
        }
        server {
              ...
        }
    }

它工作正常(进行反向代理、终止 ssl、更改端口、查找 Kubernetes 服务),直到我尝试仅将我的 IP 列入白名单。当我尝试通过 https 访问服务时 - 我从 Nginx 得到 403。我试图移动允许/拒绝命令,但它没有帮助。有什么建议可能是问题所在?
我自己也支持代理 - 所以我使用的是我的外部组织 IP。

【问题讨论】:

  • 您是否查看了访问日志以检查您连接的 IP 地址?
  • 我在 Azure 上使用了相同的 IP 来限制对某些资源的访问,我认为应该没问题。但我会检查的,谢谢。

标签: nginx nginx-config


【解决方案1】:

白名单应该在http 指令下,而不是在location 指令下。

http {
      allow MyIp;
      deny all;
      upstream my-service-3000 {
          server my-service:3000;
     }
     server {
          listen 443 ssl;
          server_name myserver.net;
          ssl_certificate     /key.pem;
          ssl_certificate_key /key.pem;
          location / {
                proxy_pass http://my-service-3000;
          }
     }
     server {
          ...
     }
}

【讨论】:

  • 我有多个服务器。我只需要一台服务器的白名单。我该如何管理?
  • 从您的描述中,我无法说出不同服务器的配置方式,以及您到底想做什么,所以我无法评论如何将哪个服务器列入白名单。
  • 这是不正确的。 allowdeny 指令在以下任一范围内有效:http, server, location, limit_except
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
  • 2020-05-31
  • 2017-08-14
  • 2014-05-01
相关资源
最近更新 更多