我已经通过谷歌,stackoverflow和serverfaultsearch,但我不太确定如何说出我在找什么,对不起,如果这是一个重复(可能是)!
我想知道的是如果它可能做到以下几点:
我目前有两个帐户可以访问两个不同的服务器(水滴)与数字海洋,一个帐户是开发工作,另一个实际上是一个网站托pipe。 两者都运行LAMP堆栈。
所以设置是这样的
帐户1
服务器1
IP(例子)1.1.1.1
帐户2
Server2上
IP(例子)2.2.2.2
网站服务器有其DNSlogging所有设置正确(logging和CNAMElogging和名称服务器的详细信息)。
我想实现的是在我的开发服务器上托pipe一个503页面,所以当我closuresapache和/或整个虚拟机进行维护/安装/更新时,任何试图访问我们域的人都会自动redirect到503页。
例如。 有人试图访问www.domain.com,这将解决2.2.2.2,但是,如果2.2.2.2不可访问,redirect到1.1.1.1/503.html,或者如果它必须使用子-域。
由于服务器可能closures,htaccess或PHP头redirect不是一个选项。
我认为这可能会使用第三台服务器来监视2.2.2.2的状态,并在不可用时redirect,但是如果可能的话,我不想额外的开销。
这可能吗?
由于该网站还处于初期阶段,因此我不想使用复制function(无论如何)。
你不能没有额外的设备。 您需要有一些东西在上游,将请求传递给相关的服务器。 当它检测到某些东西已经消失,则返回503。
Iain的答案是大致正确的,使用上游代理(如nginx)来处理这个问题是明智的。 但是,另一种解决scheme是将虚拟IP(VIP)添加到这对服务器,请参阅下面的URL。
http://krystianekb.blogspot.co.uk/2011/09/linux-configuring-single-cluster-vip.html
http://www.cyberciti.biz/faq/rhel-centos-fedora-keepalived-lvs-cluster-configuration/
当你完全控制的时候,这个解决scheme可以在你自己的基础设施上实现。 由于云基础设施的限制,我无法确定是否可以在云托pipe的虚拟机上完成此操作。 但是,Digital Oceans支持可以告诉您这种方法是否可用于他们的系统。
主要的Web服务器将是主机,只要可能就抓住IP地址。 当主服务器下线后,备用Web服务器在获取VIP时会提供503页面。
请注意,当主服务器启动时,此系统不会故障转移VIP,但主服务器上的Web服务器未运行,但是如果主服务器已closures,或者您手动故障转移VIP,则VIP将进行故障转移。
没有其他设备的解决scheme:在您的DNS区域使用短TTL,当2.2.2.2没有应答时,您可以迁移到另一个IP(如1.1.1.1)。
为了达到这个目的,你需要一个服务(可以在1.1.1.1上托pipe)来实现这个function:
也就是说,在切换的TTL秒内,你的用户将会“根本没有答案”(甚至不是503)。 如果你计划的2.2.2.2的停机时间很长,这是一个解决scheme。 如果你想立即切换,你将需要另一个设备(称为故障转移/负载平衡器)