统一的Domino域名入口中的失效转移功能实现

在这里插入图片描述
大家好,才是真的好。

上一章我们讲述统一的域名和入口内容,虽然搞技术的人不多,但看的人不少,所以今天我们继续,说一些有实用功能的设计架构,并实现它。

看图说话会比较快,所以我们多点图。

上一章,我们实现了这样一个iNotes webmail架构:
在这里插入图片描述
该拓扑可实现内、外网隔绝,也可隐藏真正的Domino域名和地址,还可以在Nginx上部署SSL证书实现安全通讯,另外,坏人如要攻击,也会先攻击没有数据的Nginx,实现一定的安全特性等。

但真只有一台Domino服务器的公司,一般也不会这么用。

既然花了不少钱在Domino上,那就要充分利用它,以将Domino直接而彻底地暴露在互联网上, 享受山呼海啸式的无情攻击。

即使有安全意识,在预算的驱使下,也被无情的攻击和毒打。

话有点偏,这不是我们今天的主题,我们今天主题是谈论下面这种webmail架构实现:
在这里插入图片描述
温馨小提示:如果不李姐我们在讲什么,可以翻翻前面几篇。

这种拓扑又分两种实现样式,主要是看用户的邮箱是如何分布在服务器上。

1、用户邮箱位于不同的Domino服务器上

比如有三台Domino Server,每台服务器上都分布若干不同用户的邮箱文件,如下图:
在这里插入图片描述
上图有点奢侈,一个Domino服务器上如果只有一个用户的邮箱,就算希拉里,也不会这么豪横。

言归正传, 在上图中,我们需要知道用户邮箱在哪台Domino服务器上,然后Nginx反向代理给用户访问。

如何知道?很多办法,比如靠Nginx去试,也可以使用Domino中自带的数据库IBM iNotes Redirect(默认名称为iwaredir.nsf),当然也可以开发个代理程序啥的。

2、每台Domino服务器上都有相同的用户邮箱

为了使用Domino中的均衡负载以及高可用性等功能,我们可以把所有用户邮箱在每台Domino服务器上进行分布,然后实现实时同步复制。

很多人已经明白了,这其实是Domino群集功能。

这样,外部用户通过统一的域名和入口进行访问访问群集中的任何一台Domino服务器,每台Domino服务器上有所有人的邮箱数据。

群集中的某台或几台服务器响应慢或宕机也不怕,用户可以访问群集中的其他Domino服务器,实现了失效转移和均衡负载功能。
在这里插入图片描述
可要实现该功能,重要的是知道哪台服务器可用或响应时间慢,从而让用户访问正常运行的或响应很快的Domino服务器。

Nginx就可以通过upstream模块来实现该功能。

而该功能是如此简单,以至于为我敢说,半篇公众号就能讲清楚。下面我们就来实现它。

3、实现Domino群集的正向代理

3.1、Domino准备工作

首先是Domino上需要进行一些准备工作。

在我们这里的实验中,假设有两台Domino服务器:mail01.mbi.com(IP地址:192.168.247.156)和mail02.mbi.com(IP地址:192.168.247.157)。

首先,先把它们配置为群集(或者在每台服务器上为所有用户创建邮箱复本,然后定时同步)。

接着,分别为它们建立站点文档,并配置SSO(单点登陆,这个不是必须的),下图展示的是配置好的站点文档和SSO:
在这里插入图片描述
而后配置可以跳转到用户邮箱的iNotes重定向数据库(IBM iNotes Redirect),并设置为每个站点的首页:
在这里插入图片描述
为了区分两台服务器,登陆界面我们设置稍有区别。

我们直接用Domino的URL访问,比如mail01.mbi.com,登陆界面如下:
在这里插入图片描述
mail02.mbi.com,登陆界面如下:
在这里插入图片描述
3.2、Nginx准备工作

好了,现在可以参照统一的域名,统一的入口!文档下载设置Nginx,Nginx的域名还是n.mbi.com(IP地址为:192.168.247.155)

我们在Hosts中都做了解析了
在这里插入图片描述
3.3、Nginx配置

其实主要是配置nginx的upstream模块。

upstream是一个服务器组,这里用来进行正向代理的服务器轮询,在Nginx.conf配置文档里http模块下定义,如下图:
在这里插入图片描述
这里我们很省事,没有定义服务器权重、响应时间限制等等参数。

大家可以搜索一下相关资料,会发现很多有用的内容。

接着,我们直接在反向代理参数proxy_pass中写入定义的upstream服务器组名称,差不多是这样:

location / {
proxy_pass http://myserver; #upstream组名
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

效果如下图
在这里插入图片描述
大功告成,重新加载一下Nginx
在这里插入图片描述
3.4、测试

我们打开浏览器,输入作为域名统一入口的Nginx服务器URL地址,本例为n.mbi.com,如下图:
在这里插入图片描述
反向代理了mail01.mbi.com,输入用户名也可以正常跳转到用户iNotes邮箱(webmail),如下图
在这里插入图片描述
接着我们把mail01.mbi.com的HTTP任务关掉:
在这里插入图片描述
再重新登陆,看到登陆界面的变化了吧?
在这里插入图片描述
以上就实现我们设计的Nginx反向代理到Domino群集中的webmail邮件结构,这也为用户访问提供了统一的入口。

所以很对应我们的标题《统一的Domino域名入口中的失效转移功能实现》

标题很有点拗口。不过,今天内容太多,我们来不及解释太多,就讲到这里吧。
在这里插入图片描述
更多精彩内容请关注微信公众号“协作者”

原文地址:https://mp.weixin.qq.com/s/iqR3Y7JzXFBRYGj0gmLKYg

更多HCL Domino学习视频请关注淘宝店铺:协作者的店

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值