本站将教大家学习DDNS、反向代理和重定向、https功能
一、DDNS
什么是DDNS?全称:Dynamic Domain Name Server(动态域名解析服务)。用于域名绑定ip后ip经常变化的情况,如家庭网络获取的ip地址是动态的,非固定的。通常只有云服务器才会提供固定的ip地址,所以ip经常变化的话我们是无法通过旧的ip去访问主机的。同理域名也是,解析到的是旧的ip地址(已失效),所以我们需在ip发生变化的时候同步更新我们的域名解析记录。这样就达到了固定ip地址的效果,这个技术我们叫做DDNS。
二、反向代理
在理解反向代理之前,我们先先理解正向代理是什么?正向代理,也叫代理,就是我们平常用的最多的代理,是显性的,显性主要体现在需要手动填写代理信息,对应地址,端口号和其他参数,最常用的就是我们的VPN服务。通过代理服务器代表我们去访问别的网站,一方面是可以绕过一些不可抗力因素,比如我们不能直接访问YouTube,但是我们的代理服务器可以访问YouTube,所以我们可以通过代理服务器去帮我们去获取YouTube的内容后转发给我们,这个过程就叫做代理,你与YouTube之间有一个中间人——代理服务器,这样的好处是对于Youtube来说可以隐藏用户真实的访问地址。
举个例子🌰:假设用户是一个小孩子,Youtube就是一个小孩子够不着的物品,他可以委托大人(代理服务器)来帮我们拿到无法得到的物品。
而反向代理就是将这个过程反过来。一般我们要访问一个服务,它直接会与服务对接,返回对应内容。而反向代理也相当于一个中间人,在用户想要访问服务器资源的时候,先要问代理服务器获取对应资源,然后通过查表,知道对应的应该要访问哪个位置,对于用户来说并不知道内部位置究竟是多少,可以做到隐藏内部信息的作用。
再举个例子🌰:假设用户是一个小区的访客,他想问问他亲戚在不在这里,于是得先向门卫(反向代理服务器)询问,门卫收到请求后先会查询户表,查询是否有此人,如果查到了对应信息会通知该亲戚回信,而这个过程对于访客来说并不知情,他只知道他亲戚在不在小区,回复只有是(返回对应内容)和否(无对应资源404)两种回答,这样有利于小区内部的信息不被泄露和方便管理,并不需要他一步一步的去小区内部查找在不在。
三、重定向
在了解重定向之前,先说一下重定向和转发的区别。转发是在服务器内部完成的,不会改变现有的连接状态,对于用户来说是无感的,一切处理都在服务器中进行,也因为如此,会保持原连接的信息,会一直消耗原服务器的资源。
重定向的话就相当于一个有脾气的业务管理员,你申请表一提交给他就会打回并叫你去找别人的完成。并且后续不会消耗原连接的任何资源,因为不再访问原服务器了。这样对于用户是可感知的,可以看到url发生了改变。
1、常用的重定向状态
- 301永久重定向
- 302临时重定向
- 304资源未修改
301和302原理是最常用的重定向功能,区别只是一个是永久,一个是临时,但对于反向代理来说选用永久重定向就可以了。
四、HTTPS
其实https是不是什么新奇玩意,https的全称叫做http+ssl证书,基于http的安全传输通道,因为http是明文传输,在公网中显然不太安全,容易造成信息泄露和篡改,使用了ssl证书后的https内容都会被加密,避免了信息在传输过程中被窃听和修改的问题。ssl证书的实现和签署需要一个权威认证机构,这里不在我们的讨论范围,有兴趣大家可以自行学习。我们只要关心在获得一个权威机构签署ssl认证证书后就可以完成http变成https的安全转变。并不是只有权威机构签署的ssl证书才能使用https,默认https也是加密传输的,只不过证书是非权威的证书,可以通过篡改证书内容来伪造权威证书,从而变成明文查看。
五、组合拳搭配使用
假设我们有个内网的服务为192.168.1.3:5244,并且需要访问的目录是/download/app,完整链接为:http://192.168.1.3:5244/download/app,我们通过了DDNS固定了公网ip对应的域名为www.a.com,首先我们先进行http的资源访问,但是收到了反向代理服务器重定向到https的请求。重新使用https进行资源访问,反向代理服务器收到https://www.a.com的资源请求后查询代理表,发现要对应的资源是http://192.168.1.3:5244/download/app,于是将该内容返回给https://www.a.com,其它访问地址同理。