Nginx列出目錄和文件并用密碼控制訪問權限怎么配置

使用nginx列出目錄

準備工作 – 安裝nginx和創建一些目錄和文件:

復制代碼?代碼如下:

$ sudo apt-get install nginx
$ cd /usr/share/nginx
$ mkdir web
$ sudo mkdir directory{1,2,3}
$ sudo touch file{1,2,3}
$ ls
directory1? directory2? directory3? file1? file2? file3

nginx配置:

復制代碼?代碼如下:

$ sudo vim /etc/nginx/conf.d/list.conf?

server {
??? listen?????? 80;
??? server_name? 192.168.1.201;

??? root /usr/share/nginx/web;
??? index index.html;

??? autoindex on;
??? autoindex_exact_size off;
??? autoindex_localtime on;
}

$ sudo service nginx restart/reload

當訪問http://192.168.1.201,屏幕顯示:

Nginx列出目錄和文件并用密碼控制訪問權限怎么配置

現在就可以用web服務器來共享文件;但前提是根目錄下必須沒有index.html文件。

授權訪問指定的目錄

有些目錄不想讓所有人看到,只有指定的用戶輸入密碼后才能訪問,例如directory只能由test1訪問:

step1安裝htpasswd

復制代碼?代碼如下:

$ sudo apt-get install apache2-utils

step2創建密碼文件

復制代碼?代碼如下:

$ sudo htpasswd -c /home/test/.htpasswd test1
new password:
re-type new password:
adding password for user test1?

step3修改nginx配置文件

復制代碼?代碼如下:

$ sudo vim /etc/nginx/conf.d/list.conf

server {
??? listen?????? 80;
??? server_name? 192.168.1.201;

??? root /usr/share/nginx/web;
??? index index.html;

??? autoindex on;
??? autoindex_exact_size off;
??? autoindex_localtime on;

??? location ^~/directory1/ {
??????? auth_basic??????????? “input you user name and password”;
??????? auth_basic_user_file? /home/test/.htpasswd;
??? }
}

重啟nginx服務后,訪問directory1目錄時會提示輸入登入信息:

Nginx列出目錄和文件并用密碼控制訪問權限怎么配置

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享