密码锁定网站除了某些路由 运行 nginx

Password lock site except for certain routes running nginx

我们有一个服务器,我们不希望 Google 索引或任何其他人访问,除非他们有密码。

除了外部扫描服务使用的非常特定的路由外,我如何才能目录锁定整个服务器?

例如,例如。com/test 应该从框架输出响应而不阻塞,但任何其他 URL 应该要求输入密码才能获得任何内容响应。

我知道如何使用 Apache 使用 .htpasswd 执行此操作,但我需要能够在 nginx 上执行此操作,同时将特定路由列入白名单。

像这样:

server {
    ...
    auth_basic "Enter password";
    auth_basic_user_file path/to/htpasswd;

    location /test/ {
        auth_basic off;
    }
}

这将使 /test/ 无需任何身份验证即可响应,并且每个其他请求都需要身份验证。

server {

  auth_basic      "Administrator Login";
  auth_basic_user_file  /var/www/static/.htpasswd;

  location /test/ {
    auth_basic off;
  }

}