这个需求是在一些具备安全要求,又想将监控,日志等平台代理到公网尽可能做到安全保护的方案,通常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;
}