如何将经过身份验证的 Nginx 用户映射到他们自己的目录?

如何将经过身份验证的 Nginx 用户映射到他们自己的目录?

我正在用 C 编写一个社交网站,并使用 Nginx 提供所有服务。我怎样才能让经过身份验证的用户只进入他们自己的目录,而该目录下有一个用户特定的 index.html。我不是问如何用用户特定的指令填充 index.html,而是如何将它们锁定到他们自己的目录中

答案1

map $remote_user $profile_directory {
    default      $remote_user;
    ''           guests;
    pavel        admins;
    ivan         admins;
}

server {

    location /profile/ {
        alias /path/to/www/$profile_directory/;
        ...
    }

}

第二个例子(见评论):

server {
    location / {
        auth_basic            "Please Login";
        auth_basic_user_file  "/etc/nginx/htpasswd";
        root /var/www/sites/mysite.com/http/$remote_user;
    }
}

答案2

events {
}

http {

  map $remote_user $profile_directory {
    default      $remote_user;
  }
  server {
     root                 /var/www/sites/mysite.com/http;

    location / {
        auth_basic            "Please Login";
        auth_basic_user_file  "/etc/nginx/htpasswd";
        alias /var/www/sites/mysite.com/http/$profile_directory/;
    }
  }
}

这是我编辑的版本,其中包括我所有的 nginx.conf 配置文件

相关内容