背景
項目上需要一些共享目錄讓外地同事可以網頁訪問對應的文件,且受權限控制;
現有環境:
- centos
- nginx
你可以了解到以下內容:
- 配置nginx開啟目錄訪問
- 並配置nginx用戶名和密碼進行權限控制
1/2 列出目錄列表
autoindex on; # 開啟目錄文件列表
還可以加一些其它的功能,以下是我使用的附加配置:
autoindex_exact_size on; # 顯示出文件的確切大小,單位是bytes
autoindex_localtime on; # 顯示的文件時間為文件的服務器時間
charset utf-8,gbk; # 避免中文亂碼
2/2 加上用戶名和密碼(需要安裝軟件)
a. 安裝httpd-tools
yum -y install httpd-tools
b. 使用htpasswd
生成指定用戶名和密碼的權限文件,示例如下,按照提示輸入兩次密碼
# 在/etct/nginx目錄下,生成passwd110文件
# 添加test110用戶
htpasswd -c /etc/nginx/passwd110 test110
htpasswd還有其它參數,可以通過htpasswd -h
來查看,例如可以指定一些密碼加密方式
c. 配置nginx
auth_basic "input your password"; #這里是驗證時的提示信息
auth_basic_user_file /etc/nginx/passwd110;
示例
完成配置示例(開啟/var/www/logs
目錄列表,並且需要用戶名和密碼訪問)如下:
location /logs {
root /var/www/;
autoindex on; # 開啟目錄文件列表
autoindex_exact_size on; # 顯示出文件的確切大小,單位是bytes
autoindex_localtime on; # 顯示的文件時間為文件的服務器時間
charset utf-8,gbk; # 避免中文亂碼
# add_header Content-Disposition attachment;
# 以下是配置用戶名和密碼訪問
auth_basic "Please input password"; #這里是驗證時的提示信息
auth_basic_user_file /etc/nginx/passwd110;
}