Tegnap Péter egy érdekes kérdést tett fel Facebook oldalunkon, ami akár több embernek is fontos lehet, ezért archiváljuk itt is a választ.
Miként lehet kivédeni külső alkalmazásnál a szerver-karbantartás által okozott kiesést? Van valahol az alkalmazáson belül biztonsági url beállítási lehetőség (ami mondjuk egy másik szerverre mutatna)?
Vagyis mi történik a Facebook alkalmazásoddal, promócióddal, Like kapuddal akkor, ha éppen karbantartod a szerveredet?
A Facebook alapból nem kínál arra lehetőséget, hogy az alkalmazás kiesése esetén egy alternatív szerver vagy weboldal automatikusan megjelenjen.
Persze ha tervezett karbantartásról van szó, és van egy pót szervered, vagy egy ideiglenes alkalmazásod arra az időre, akkor Te fel tudsz készülni, hiszen az alkalmazásnál arra az időre át tudod állítani a hivatkozásokat.
Persze attól, hogy a Facebook nem ad lehetőséget az automatikus helyettesítésre, Te még gondolhatsz rá a saját szerverednél.
Mivel ez már erősen rendszergazdai kérdés, nem is én írom le a megoldás, átadom inkább a szót Istvanovszki Zoltán kollégámnak, aki igazán szakavatott a kérdésben:
Ha saját alkalmazásról beszélünk, akkor a webszerverben megadható hiba kódonként egy másik tartalom, vagy egy eltérő URL ahová átirányítódik. Ennek alapvető feltétele, hogy tényleges státus kódot adjon vissza (pl. ne csak kiírja, hogy 404, hanem valóban 404 fejléccel ellátott üzenet legyen).
Továbbiak apache esetében itt.Ha saját vagy külső alkalmazásról beszélünk, akkor jobb megoldásnak gondolok egy olyan megközelítést, hogy egy adott címen közzé lehet tenni egy alkalmazást (pl. fbproxy.domain.hu) amely a háttérben akár több címről is futhat. Bár nem teszteltem, de több szerver esetén kiküszöbölhető, hogy ne fusson a rendszer.
Apache esetében innen indulnék neki.
Illetve konkrét leírás High Availability megvalósításra itt.
Zoltán javaslatai természetesen nem csak a tervezett leállások, hanem a nem tervezhető leállások – például hardver hiba, fizikailag eltérő helyen levő szerverek esetén, akár internet csatlakozási hiba – esetén is megoldást nyújtanak, ráadásul a magas rendelkezésre állású (High Availability) megoldás nagy terhelésű Facebook alkalmazás esetén is hasznos lehet.
Így nem csak akkor jó Neked ez a megoldás, ha meg akarod menteni magad a fontos kampány miatt aggódással eltöltött álmatlan éjszakáktól, hanem akkor is, ha például akarsz fejleszteni egy saját Farmville-t. 🙂