通过Docker、Alpine Linux和Unbound实现DNS服务器托管
试想一下,假如我们要搭建一个移动app,同时又没有充足的预算去购买软硬件资源的话,该怎么办呢?比方说,如果我们要在现有的基础设施上运行这个app,偏偏我们手头上只有一些老旧的低性能机器的话,有什么办法可以实现移动app的部署和运行?
对于一些公司来说,他们的应用本身用户量不算多,固定用户大概也就几百人。这种情况下花大量的经费去购买资源肯定是不合算的,何况公司的团队也很小,难以维护大量的设施。公司没有足够的经费,但是又的确需要搭建专门的开发运维环境,这种例子在现实中比比皆是。
条件稍微好点的创业型公司可以购买AWS的实例,也有的会买一些IP地址分配给服务器,但是也有一些小团队无法提供这些条件。据我所知,有的团队直接用的家用电脑来做服务器,IP地址也只有1个,只能靠搭建子网,用代理服务器来实现流量的重定向。在这种情况下就需要自定义DNS规则,将服务器主机名与内网IP一一匹配。
通过Docker, Alpine和Unbound快速创建微型DNS服务器
Docker问世之后,这种尴尬的局面即将结束,现在我们可以通过Docker,Alpine和Unbound快速实现DNS服务器托管了。首先,我们需要调用下面的Dockerfile脚本:
FROM alpine:3.3
MAINTAINER Philip Miglinci "p.miglinci@gmail.com"
RUN apk add --update unbound ; \
rm -rf /var/cache/apk/* ;
COPY unbound.conf /etc/unbound/unbound.conf
COPY root.hints /var/unbound/etc/root.hints
COPY root.key /var/unbound/etc/root.key
RUN unbound-checkconf
CMD ["unbound"]
大家可以戳这里下载上面的root.hints文件。
root.key表示的是上面我们下载的顶层DNS服务器:
. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
在 unbnound.conf 文件里,大家可以创建自定义的DNS Entry,比如下面这段配置脚本就设置了A-record的记录值:
server:
interface: 0.0.0.0
verbosity: 1
do-daemonize: no
access-control: 0.0.0.0/0 allow
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: no
hide-identity: yes
hide-version: yes
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: yes
cache-min-ttl: 3600
cache-max-ttl: 86400
prefetch: yes
num-threads: 4
msg-cache-slabs: 8
rrset-cache-slabs: 8
infra-cache-slabs: 8
key-cache-slabs: 8
rrset-cache-size: 256m
msg-cache-size: 128m
so-rcvbuf: 1m
private-address: 192.168.1.0/16
unwanted-reply-threshold: 10000
do-not-query-localhost: no
val-clean-additional: yes
local-zone: "pmig.at." static
local-data: "pmig.at. IN A 192.168.1.201"
forward-zone:
name: "."
forward-addr: 195.34.133.10
forward-addr: 213.33.99.70
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4
我们还可以在文件里定义local-zone并设置A record的值,如果当前主机地址不在local zone里面,系统就会向其他DNS服务器发送请求,本例中我用的是当前ISP服务商的DNS,如果ISP无法提供DNS服务,系统就会启用Google DNS。
另外说一句,大家如果要采用这种方式来实现DNS托管,还需要开放docker宿主机的UDP 53号端口,并在内网路由器中进行设置。
上述配置完成后,我们的内网环境就建好了,大家可以不受限制地在局域网中搭建docker开发环境,这种办法既方便又省钱,可谓是一举多得。
如何在IDE部署springboot项目(有swagger和无swagger都是一样的)到服务器或者虚拟机上的docker 最近写了个项目,前端还没写,需要部署到服务器给女朋友实现前端,可是不熟悉Linux的我,蹑手蹑脚,真的是每一步都是bug,可谓是步步维艰,对世界很绝望,曾经怀疑自己的服务器有问题,甚至一度怀疑是自己的DaoBan IDE有问题,历时两天一夜,终于……部署好了。
利用Docker挂载Nginx-rtmp(服务器直播流分发)+FFmpeg(推流)+Vue.js结合Video.js(播放器流播放)来实现实时网络直播 众所周知,在视频直播领域,有不同的商家提供各种的商业解决方案,其中比较靠谱的服务商有阿里云直播,腾讯云直播,以及又拍云和网易云的有偿直播服务,服务包括软硬件设备,摄像机,编码器,流媒体服务器等。但是其高昂的费用以及较高的准入门槛让许多个人和小型企业望而却步,本文要讲解的是如何使用nginx-rtmp搭建直播服务器,配合FFmpeg推流,在网页端vue.js作为载体利用video.js作为流播放器,打造一套可用的在线视频直播方案。
相关文章
- linux - mysql - 卸载:使用rpm方式安装的mysql
- Linux 下实践 VxLAN:虚拟机和 Docker 场景
- Linux - Troubleshooting
- Linux ACL访问控制权限 setfacl
- Docker 一文教你清理docker空间释放磁盘空间
- Docker的三种网络代理配置:dockerd pull镜像代理;容器docker run网络代理;docker build代理--build-arg
- linux一键安装docker命令
- Linux堆内存管理深入分析(上)
- 【docker】Docker快速入门总结笔记(命令大全)
- Linux下进程终止过程
- 81.第十七章 企业级容器技术docker -- Docker 数据管理、Docker网络管理(九)
- y23.第二章 Docker从入门到精通 -- docker 的资源限制(五)
- 【云原生之Docker实战】使用docker部署短链接服务YOURLS
- 【云原生之Docker实战】使用docker部署Wiznote私人笔记系统
- 【云原生之Docker实战】使用docker部署Jellyfin个人影音服务器
- 查看linux系统配置 查询Linux配置
- Linux查找命令
- linux下按在Apache
- ZYNQ - 嵌入式Linux开发 -10- ZYNQ启动流程分析
- Linux:应用由原来的root启动,切换到其他用户启动;runuser
- Linux驱动中的open函数是如何从软件打通硬件呢?
- 【Docker系列】2.Linux 安装docker+docker-compose
- linux 安装docker 笔记
- Linux基础笔记3 | 系统基础知识与操作