Nginx 在经过身份验证的页面后面提供静态内容
Nginx serve static content behind authenticated page
我创建了一个目录调用库,需要身份验证才能访问。完成身份验证后,我想为用户列出库中的所有文件。我试过 autoindex 无济于事,而且我发现的大多数 material 都没有涵盖身份验证是否会影响任何内容。
非常感谢任何帮助,谢谢。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then as
# directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location include
# /etc/nginx/naxsi.rules
}
location /website {
}
location /library {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
您的 location /library
块将强加基本身份验证的要求,并在 /usr/share/nginx/html/library
中向所有可以成功身份验证的用户提供相同的静态文件。简而言之,所有成功授权的用户将在您当前的配置中看到相同的文件。
要向不同 用户提供不同 静态文件,请考虑基本身份验证将设置$remote_user
变量(请参阅docs),你可以利用它来使你的配置动态化。
例如,如果您想为每个用户 ID 提供不同的文件夹(同时 /library
URL),您可以使用如下块:
location /library {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
alias /usr/share/nginx/html/$remote_user/;
}
假设您的文件夹以您的用户 ID 命名并位于该路径中。
如果用户未通过基本身份验证,他们将看到 403 禁止访问错误,您可以使用 error_page
指令处理该错误以显示比基本错误更有用的内容。同样,如果用户可以成功验证并且相应的文件夹不存在,他们将看到 404,您可以再次使用 error_page
指令处理。
我创建了一个目录调用库,需要身份验证才能访问。完成身份验证后,我想为用户列出库中的所有文件。我试过 autoindex 无济于事,而且我发现的大多数 material 都没有涵盖身份验证是否会影响任何内容。
非常感谢任何帮助,谢谢。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then as
# directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location include
# /etc/nginx/naxsi.rules
}
location /website {
}
location /library {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
您的 location /library
块将强加基本身份验证的要求,并在 /usr/share/nginx/html/library
中向所有可以成功身份验证的用户提供相同的静态文件。简而言之,所有成功授权的用户将在您当前的配置中看到相同的文件。
要向不同 用户提供不同 静态文件,请考虑基本身份验证将设置$remote_user
变量(请参阅docs),你可以利用它来使你的配置动态化。
例如,如果您想为每个用户 ID 提供不同的文件夹(同时 /library
URL),您可以使用如下块:
location /library {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
alias /usr/share/nginx/html/$remote_user/;
}
假设您的文件夹以您的用户 ID 命名并位于该路径中。
如果用户未通过基本身份验证,他们将看到 403 禁止访问错误,您可以使用 error_page
指令处理该错误以显示比基本错误更有用的内容。同样,如果用户可以成功验证并且相应的文件夹不存在,他们将看到 404,您可以再次使用 error_page
指令处理。