nginx配置目錄訪問&使用者名稱密碼控制
阿新 • • 發佈:2019-05-17
背景
專案上需要一些共享目錄讓外地同事可以網頁訪問對應的檔案,且受許可權控制;
現有環境:
- 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;
}