如何配置 nginx 以密码保护包含 .htpasswd 文件的文件夹?

如何配置 nginx 以密码保护包含 .htpasswd 文件的文件夹?

我希望能够将.htpasswd文件放入 nginx 提供的文件夹中,以便 nginxlocation使用 HTTP 身份验证保护相应的文件。

我正在考虑这样的配置:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;

        root /var/www;

        index index.html index.htm;
        location / {
                try_files $uri $uri/ =404;
        }

        ##########################################
        ############################# note below

        location <any folder that contains a .htpasswd file> {
                auth_basic "Authentication Required";
                auth_basic_user_file <respective folder>/.htpasswd;
        }

        ############################# note above
        ##########################################

        location ~ /\. { deny all; } # disable access to .htpasswd
}

我是否有可能location通过操作系统文件夹中的文件的存在来匹配?是否可以以某种方式导出路径,以便将其输入到auth_basic_user_file

如果没有,是否有其他方法可以实现满足相同目标的配置?

相关内容