nginx 拒否および許可ルールが機能しません。

nginx 拒否および許可ルールが機能しません。

まず、nginx.confにこれがあります。

server {
    listen 80;

    root /home/user/files;
    index index.php index.html index.htm;

    server_name mydomain.com;

    location / {
        autoindex on;
       }

    #this option will allow auto index on video directory
     location ~ ^/video {
                auth_basic            "Restricted";
                auth_basic_user_file  /etc/nginx/.htpasswd;
                include /etc/nginx/conf.d/php;
                autoindex on;
                autoindex_exact_size on;
}
    #only spesific ip allow to download files in video directory
    location ~ ^/video/* {
               autoindex off;
               allow myip;
               deny all;
       }

}

そうだ許可するルールが機能せずにビデオファイルをダウンロードしようとすると、まだ403が表示されます。

私のconfに問題がありますか?

答え1

location同じブロックに入れてください。

location /video/ {
    auth_basic            "Restricted";
    auth_basic_user_file  /etc/nginx/.htpasswd;
    allow myip;
    deny all;
    include /etc/nginx/conf.d/php;
    autoindex on;
    autoindex_exact_size on;
}

location ~ regexp単純なフォワードマッチングだけで十分なパスでregexp match()を使用し、同じ場所で自動インデックスのオン/オフを混在させる理由はわかりません。

関連情報