在产品研发过程中,免不了遇到要接入外部服务的业务场景,例如:第三方支付、短信发送服务、邮件发送服务等等。这里面,不乏一些至关重要的服务,对安全要求性很高,为了便利,服务提供商,往往提出使用 IP 白名单的形式来进行辅助鉴权。若在过去,非常小的企业里,使用托管服务器作为企业的服务器的时代,这一般不在成为问题,一个是服务器本身数量很小,而且很稳定,另一方面,服务器是物理机器,其 IP 地址也相对稳定得多。
而现在,云计算作为一种价格低廉、扩展容易的形式,极大程度替换了原有的服务器托管形态的 IT 基础架构。在云计算的语境下,为了让资源能更高效利用,降低成本,云计算服务商往往采用动态分配资源,以及虚拟化技术的形式,来为企业提供服务。这就造成了哪怕是很小的企业,也有数量庞大的服务器数量(虽然它们是虚拟的),而且,因为动态分配,还可能造成服务器的 IP 并不稳定(因为,在不需要使用的时候,企业可以通过申请取消资源占用来节省开支,这样,如果再次分配,IP 地址就变化了)。
如此一来,依赖 IP 地址白名单的鉴权,就会给产品部署运维带来烦恼。一是,在某个产品研发的过程中,就需要向第三方服务,上报最终线上环境的 IP 地址,这对于使用云计算的企业,可能并不方便,因为服务器此时可能还没有分配呢;二是,产品在发展过程中,可能会逐步成长扩张,当系统容量受到挑战时候,可能就会考虑扩容,在云计算中,扩容是非常容易且频繁的一种行为,这个时候,一旦忘记了追加白名单,那么新扩容的机器,可能马上因为无法调用第三方服务而导致运营事故。
#模块名 [simple_path_name] path = /rsync_files_here #模块路径 comment = My Very Own Rsync Server uid = nobody gid = nobody read only = no list = yes auth users = username #rsync用户名 secrets file = /etc/rsyncd.scrt #rsync密码 上面加了注释的地方,都是你在开始使用时候,需要修改的。我现在从上到下,逐行过一遍。上面的范例,配置的是一个rsync传输到那台机器上的路径。
前面四行,是rsync以守护进程方式运行,所需要指定的文件和它们的路径。motd代表今日消息(message of the day),就像你FTP服务器使用的欢迎语一样。当客户端连接到这个服务器的时候,这个文件的内容会显示出来。一般用于欢迎语,警告,或者简单的识别用途。下一行,设定了一个日志文件,用于保存诊断信息还有正常的运行时消息。PID文件包含了rsync守护进程的进程ID。锁文件用于保证所有的事情都平滑运行。这些配置是rsync守护进程的全局配置。