Nginx配置带密码保护的双挂载点文件服务器
Nginx配置带密码保护的双挂载点文件服务器
嗨,这就给你一套完整的配置方案,搞定带密码保护的双挂载点文件服务器,步骤很清晰:
1. 生成密码验证文件
首先得创建用于密码验证的文件,我们用htpasswd工具来做:
- 如果是Debian/Ubuntu系统,先装依赖:
sudo apt update && sudo apt install apache2-utils - 如果是CentOS/RHEL系统:
sudo yum install httpd-tools - 生成密码文件(比如放在
/etc/nginx/.htpasswd,路径你可以自己改):
执行后会提示你输入密码,sudo htpasswd -c /etc/nginx/.htpasswd your_username-c参数是创建新文件的意思。如果之后要添加新用户,去掉-c就行:sudo htpasswd /etc/nginx/.htpasswd another_username
2. 编写Nginx配置
打开你的Nginx配置文件(通常是/etc/nginx/nginx.conf或者/etc/nginx/sites-available/your-config),添加下面的server块:
server { listen 80; server_name your-domain.com; # 替换成你的服务器域名或公网IP # 第一个挂载点:访问 http://your-domain.com/data 对应本地 /data 目录 location /data { alias /data; autoindex on; # 开启文件列表展示 autoindex_exact_size off; # 显示易读的文件大小(KB/MB)而非字节数 autoindex_localtime on; # 显示服务器本地时间而非GMT时间 # 开启密码保护 auth_basic "Restricted File Server"; auth_basic_user_file /etc/nginx/.htpasswd; # 指向刚才生成的密码文件 } # 第二个挂载点:访问 http://your-domain.com/reserv 对应本地 /reserv 目录 location /reserv { alias /reserv; autoindex on; autoindex_exact_size off; autoindex_localtime on; # 同样开启密码保护 auth_basic "Restricted File Server"; auth_basic_user_file /etc/nginx/.htpasswd; } # 可选:默认访问根目录时跳转到/data(也可以改成/reserv或者其他) location / { return 302 /data; } }
3. 验证配置并重启Nginx
配置写完后先检查语法是否正确:
sudo nginx -t
如果提示test is successful,就重启Nginx生效:
sudo systemctl restart nginx
4. 权限检查(关键!)
要确保Nginx的运行用户(通常是www-data或nginx)有读取/data和/reserv目录的权限:
- 先查看Nginx运行用户:
ps aux | grep nginx | grep -v root - 给目录添加必要权限:
或者直接修改目录所属用户(如果允许的话):# 给其他用户添加读和进入目录的权限 sudo chmod o+rx /data /reservsudo chown -R www-data:www-data /data /reserv
现在你访问http://你的域名/IP/data或/reserv时,就会弹出密码验证框,输入刚才设置的用户名密码就能看到文件列表啦!
备注:内容来源于stack exchange,提问作者Rajesh Yidi
相关产品推荐
相关产品推荐

