配置nginx对外提供下载,并且要求输入用户名密码

配置nginx对外提供下载,并且要求输入用户名密码

需求:

1.安装密码生成工具
yum  -y install httpd-tools

htpasswd说明

htpasswd 是 Apache 密码生成工具,Nginx 支持 auth_basic 认证,因此我门可以将生成的密码用于 Nginx 中

2. 生成用户和密码文件

语法:htpasswd (选项) (参数)

-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,只将加密后的用户名密码显示在屏幕上;
-m 默认采用MD5算法对密码进行加密
-d 采用CRYPT算法对密码进行加密
-p 不对密码进行进行加密,即使用普通文本格式的密码
-s 采用SHA算法对密码进行加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户
生成一个用户名为test.txt 的文件 ,将用户名test存储在其中,密码手动收入,使用md5加密
htpasswd -cm test.txt  test  
3. 配置nginx认证

找到 nginx 配置文件,通常默认的配置文件在/usr/local/nginx/conf/nginx.conf(也有可能在/etc/nginx,具体情况具体对待),要对整个站点开启验证,需在配置文件中的server加上认证配置
auth_basicauth_basic_user_file

server {
  listen 80;
  server_name  localhost;
  # ...
  
  auth_basic "请输入用户和密码"; # 验证时的提示信息
  auth_basic_user_file /usr/local/nginx/password; # 认证文件

  location /download {
      root   /data/download/;
      index  index.html index.htm;
  }
  # ...
}
4. 重启/重载Nginx使站点的认证生效
检测配置文件是否正确
nginx -t
重启
nginx -s reload
5.测试

如果你的服务器上 /data/download/ 目录下有文件a.txt

在浏览器中访问localhost:80/download/a.tx 此时就会让你输入用户名密码才可以下载了

快去试试吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在公网上部署nginx rtmp docker实现用户名密码认证,可以按照以下步骤进行操作: 1. 首先,在服务器上安装Docker,确保可以正常使用Docker命令。 2. 下载nginx rtmp镜像,并在本地创建一个docker容器: `docker run -d -p 1935:1935 -p 80:80 --name nginx-rtmp tiangolo/nginx-rtmp` 这将创建一个名为nginx-rtmp的容器,并将宿主机的1935端口映射到容器的1935端口,80端口映射到容器的80端口。 3. 进入容器的shell环境: `docker exec -it nginx-rtmp /bin/bash` 4. 在容器中安装htpasswd工具,用于生成密码文件: `apt-get update && apt-get install apache2-utils` 5. 使用htpasswd生成密码文件,并设置用户名密码: `htpasswd -c /etc/nginx/.htpasswd username` 该命令将创建一个.htpasswd文件,并添加一个用户名为"username"的用户,此时会提示输入密码。 6. 编辑nginx配置文件,实现基本的用户名密码认证: `vi /etc/nginx/nginx.conf` 在`rtmp { ... }`或其他相关的块内添加以下配置: ``` application myapp { live on; hls on; hls_path /tmp/hls; deny play all; # 禁止未认证用户播放流 hls_fragment 1s; # 每个片段的时长 hls_playlist_length 3s; # M3U8播放列表文件的长度 auth_basic "Restricted"; # 认证提示信息 auth_basic_user_file /etc/nginx/.htpasswd; # 密码文件路径 } ``` 7. 保存配置文件并重启nginx服务: `service nginx restart` 现在,当访问rtmp流时,用户需要输入用户名密码才能进行验证,并可以播放和查看流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值