这个需求是在一些具备安全要求,又想将监控,日志等平台代理到公网尽可能做到安全保护的方案,通常nginx在内网,外层会有clb(7层),网关或waf类的代理组建,默认监控平台大多为开源平台,有些有认证,有些无认证,还会随着安全渗透暴露出一些问题,这里通过nginx添加二层密码验证,达到将平台防护,又通过XFF传过来的源地址做为白名单限制访问来达到安全防护的目的
#直接上配置,全局的话直接在server端限制,正常场景nginx很难能直接拿到源地址,基本都是通过header传进来的 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if ($http_x_forwarded_for !~ "x.x.x.x|x.x.x.x" ) { return 404 "<center><h1>Resource Not Found</h1></center>"; } location ^~ /xxxxx/ { proxy_pass http://x.x.x.x:5601/xxxx/; proxy_read_timeout 180s; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Authorization ''; auth_basic "pls input passwd"; auth_basic_user_file conf.d/htpasswd.user; }