1. 前言
本文主要演示如何快速部署一个带用户名和密码认证的文件分享网页服务器。
你是否计划想搭建一个带密码认证的文件分享服务器?不仅仅要控制人员的访问,还要规避中间人窃听与干扰,比如上网行为管理器的干扰与记录。这时我们不仅仅需要认证功能,而且需要加密功能。本教程使用nginx
的认证模块和申请公网tls
数字证书做认证。
最终成果:
搭建一个http/https文件分享服务器,并带密码验证功能,即输入密码后才能查看和下载网页中的文件。
部署前提条件:
- 带公网IP的服务器
- 熟悉基本的命令行操作
- 具有相关域名的DNS控制权,可以做域名与IP地址的映射
- 具有系统的root账号权限
组件介绍:
- CentOS 7.x/8.x 操作系统,Ubuntu系统同样适用,但要注意分区工具名称和命令。
- nginx:Nginx是一款面向性能设计的HTTP服务器,也可以用作反向代理、负载平衡器和HTTP缓存。
- httpd-tools:提供http网页验证功能的组件。
本文是基于以下教程的扩展,所以继续阅读之前请先阅读以下文章:
如何搭建一个基于http/https的文件服务器?
2. 设置网站访问密码
搭建文件服务器有时候不想让别人任意访问,可以用到nginx
自带的认证模块。
使用以下这两个字段:
auth_basic
表示的输入密码时的提示语
auth_basic_user_file
则显示认证时的用户密码文件存放路径
修改虚拟主机配置文件,留意以下auth_basic
两行参数
[root@zcwyou ~]# vi /etc/nginx/conf.d/file_server.conf
配置文件的大概内容:
- 监听80端口
- 指定域名
- 指定文件目录路径
- 开启认证功能
server {
client_max_body_size 4G;
listen 80;
server_name files.linuxrumen.com;
root /usr/share/nginx/files;
location / {
auth_basic “Restricted”;
auth_basic_user_file /etc/nginx/pass_file;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
}
设置网页认证用户名和密码:
安装htpasswd
yum -y install httpd-tools
如果提示没有htpasswd
这个命令,安装这个httpd-tools
包
假设用户名为user1
htpasswd -c -d /etc/nginx/pass_file user1
按提示设置http网页认证信息
按指引设置密码
测试nginx配置文件,看看有没有报错
nginx -t
重载配置
nginx -s reload
如果使用reload不生效就要重启nginx服务
systemctl restart nginx.service
3. 测试
重启浏览器后输入文件服务器的域名,可以看到下图这种界面,输入用户名和密码即可浏览和下载里面的文件。
按提示输入用户名和密码
正确输入用户名和密码后可以看到文件列表
4. 向服务器上传文件
服务器上传文件一般有2种方法:
-
- 使用
wget
或curl
下载文件到服务器上。
- 使用
-
- 使用
winscp
软件上传文件到服务器上。
- 使用
Linux与Windows相互文件传输之winscp工具的使用教程:
5. 结论
通过本文,您应该学会了如何部署带验证功能的文件分享服务器了,适用于私密分享文件的应用场景,防止未经授权下载文件。本教程以CentOS系统做演示,使用nginx和python2-certbot-nginx这2个组件。nginx提供http/https协议功能和认证模块,python2-certbot-nginx提供权威tls证书,当然,tls证书是可选项。条件满足的朋友赶紧试试,建立一个自己的文件分享网站吧。如果你有更的方法请留言。
评论前必须登录!
注册