公网部署nginx rtmp docker 实现用户名密码
时间: 2023-10-11 10:02:56 浏览: 180
Python Nginx+Docker 部署
要在公网上部署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流时,用户需要输入用户名和密码才能进行验证,并可以播放和查看流。
阅读全文