साल का सबसे बड़ा ऑफ़र 1 महीना खरीदें, 1 महीना मुफ़्त पाएँ हर VPS और डेडिकेटेड सर्वर पर, किसी भी अवधि के साथ — 12 महीने का भुगतान करें, 24 महीने चलाएँ। अवधि दोगुनी करें
होम / गोपनीयता होस्टिंग Guides / Website को Offshore Hosting पर बिना Downtime के कैसे Migrate करें
परिचालन

बिना Downtime के Offshore Hosting पर Migration

लगभग हर तकलीफ़देह migration एक technical नहीं बल्कि ordering की गड़बड़ी होती है — TTL दो दिन पहले की बजाय उसी रात घटाया गया, certificate DNS बदलने से पहले की बजाय बाद में जारी किया गया, cron job किसी ऐसे server पर चालू छोड़ दिया गया जो अब authoritative नहीं रहा। यह वह क्रम है जो downtime window को पूरी तरह हटा देता है, साथ ही वह हिस्सा जिसे आम guides छोड़ देती हैं: यह move आपके बारे में हमेशा के लिए क्या दर्ज कर देता है, और आप अब भी उसके बारे में क्या कर सकते हैं।

KYC नहीं
केवल क्रिप्टो
लॉग नहीं
DMCA अनदेखा
पूर्ण रूट
NVMe SSD

कोई भी live site को मनोरंजन के लिए नहीं ले जाता। यह तब होता है जब मौजूदा host अचानक आपके passport की तस्वीर माँगने लगता है, या 24 घंटे की समय-सीमा वाली कोई complaint आगे भेज देता है, या क्योंकि जिस देश में उसका datacentre बैठा है वह अब आपका data रखने के लिए समझदारी वाली जगह नहीं लगता। वजह जो भी रही हो, move ख़ुद ही सबसे ख़तरनाक हिस्सा होता है — यही वह एक पल है जब site बंद हो सकती है, और यही वह एक पल है जब एक लापरवाह क़दम नए server को उसी पहचान से जोड़ सकता है जिसे आप पीछे छोड़ने की कोशिश कर रहे थे।

दोनों जोखिमों का इलाज एक ही है, और वह कोई tool नहीं है। वह है ordering। सही क्रम में चलाया गया migration ऐसा कोई window नहीं छोड़ता जिसमें site पहुँच से बाहर हो, क्योंकि दोनों servers एक साथ ज़िंदा रहते हैं और DNS सबसे आख़िर में बदलता है। ग़लत क्रम में चलाया गया migration एक साथ outage और एक trail, दोनों पैदा कर देता है। आगे वही क्रम दिया गया है, उस इंसान के लिए लिखा गया जो दो mainstream providers के बीच अदला-बदली की बजाय किसी offshore, no-KYC host की तरफ़ जा रहा है — तरीक़ा वही है, पर बाद की सफ़ाई वैसी नहीं।

असल में "zero downtime" का मतलब क्या है

यह वाक्यांश ढीले ढंग से इस्तेमाल होता है, और यही ढिलाई है जहाँ लोग मार खाते हैं। दो machines से एक साथ HTTP serve करना आसान है। दो machines के एक साथ serve करते समय state को consistent बनाए रखना ही असली मुश्किल हिस्सा है, और यही इकलौता हिस्सा है जो कभी data खोता है। इसलिए कुछ भी plan करने से पहले यह तय करें कि आप असल में इनमें से क्या चला रहे हैं, क्योंकि यही जवाब पूरी रात का ढाँचा तय करता है।

आप क्या move कर रहे हैंअसल में तकलीफ़ कौन सा हिस्सा देता हैplan क्या होना चाहिए
Static site, brochure site, generated outputकुछ नहीं। यहाँ बाँटने के लिए कोई state ही नहीं हैCopy करें, verify करें, cut over करें। सचमुच zero downtime
database वाला कोई CMS — WordPress, Ghost, कोई forumComments, logins और posts का एक साथ दो databases पर पहुँचनाएक read-only freeze, जो मिनटों में नापा जाए — आपके सबसे शांत घंटे पर
कोई store, या ऐसा कुछ भी जो orders लेता होएक split brain चुपचाप paid orders खो देता हैछोटा maintenance window लें। यह reconciliation से सस्ता पड़ता है
cron jobs या background workers वाला कुछ भीदोनों servers पर एक ही job का चलना — दोगुने emails, दोगुने chargesनए वाले के शुरू होने से पहले पुराने host पर schedule बंद करें, बाद में नहीं
उसी domain पर MailMX records अपने ही समय पर caches से expire होते हैं, आपके A record से बेपरवाहmail को अलग रात को move करें, और पुराने MX को एक हफ़्ते तक स्वीकार करते रहने दें

ग़ौर करें कि सिर्फ़ पहली row ही सचमुच मुफ़्त है। बाक़ी हर जगह, "zero downtime" का मतलब है "इतना छोटा write freeze कि कोई उसके लिए ticket ही न खोले"। सुबह 04:00 बजे के दो मिनट का read-only एक rounding error है; दो databases पर दो घंटे के split writes एक पूरे weekend की reconciliation है। freeze को चुनें।

बिना Downtime के Offshore Hosting पर Migration
दोनों servers एक साथ चलते हैं और DNS सबसे आख़िर में बदलता है — यही वजह है कि सही क्रम में किया गया cutover कोई window छोड़ता ही नहीं।

move की योजना बनाने से दिनों पहले DNS TTL घटाएँ

यह इकलौता ऐसा क़दम है जिसमें lead time लगता है, इसीलिए यह सबसे पहले आता है और इसीलिए लोग इसे छोड़ भी देते हैं। आपका TTL — यानी time to live — internet के हर resolver को बताता है कि वह आपके record को दोबारा पूछने से पहले कितनी देर तक cache कर सकता है। अगर आपके A record का TTL 86400 है, तो जिस resolver ने इसे एक घंटे पहले देखा था वह अगले 23 घंटों तक वही पुराना IP देता रहेगा, चाहे आप registrar पर कुछ भी बदल दें।

सबसे अहम बात यह है कि TTL घटाना ख़ुद भी पुराने TTL के अधीन है। Resolvers को नए, छोटे मान का पता तभी चलता है जब पुरानी cached copy expire होती है। इसलिए TTL को 300 seconds तक cutover से कम से कम एक पूरे पुराने-TTL period पहले घटा दें — एक दिन-भर के TTL के साथ, इसका मतलब है यह काम 24 से 48 घंटे पहले करना। फिर पूरी दुनिया बदलाव के पाँच मिनट के भीतर आपके नए record पर आ जाती है, और cutover किसी रोमांचक घटना की बजाय एक सामान्य बात रह जाता है।

move के कुछ दिन बाद TTL को वापस किसी समझदार मान पर ले आएँ। 300-second TTL एक बढ़िया tool है पर एक ख़राब स्थायी setting — यह आपके query volume को कई गुना बढ़ा देता है और आपके DNS provider को कहीं ज़्यादा तीखा single point of failure बना देता है।

जो move कर रहे हैं उसकी inventory बनाएँ, जो याद है उसकी नहीं

हर असफल migration का post-mortem एक जैसा होता है: जिस चीज़ को किसी ने list ही नहीं किया, वह copy नहीं हुई। web root और database — ये दो चीज़ें हर किसी को याद रहती हैं; नीचे दी गई list बाक़ी सब कुछ है, और इसे याददाश्त से नहीं बल्कि शब्दशः चलकर देखना समझदारी है।

  • Scheduled work। crontab -l हर user के लिए, साथ ही systemd timers। Renewal hooks और रात की jobs यहीं छुपी होती हैं।
  • Service definitions। Custom systemd units, web server vhosts, PHP-FPM pools, कोई भी supervisor config।
  • Secrets और environment। .env files, API keys, database passwords, application salts — और ध्यान रखें कि इन्हें सिर्फ़ copy नहीं, rotate किया जाना चाहिए।
  • TLS material। Certificates और, इससे भी ज़्यादा अहम, ACME account और renewal configuration।
  • Mail identity। DKIM private keys, SPF और DMARC records। यहाँ की कोई गड़बड़ शोर मचाकर नहीं टूटती; यह बस चुपचाप आपकी mail को spam में भेज देती है।
  • Uploaded media। अक्सर web root से बाहर, और अक्सर आपकी सबसे बड़ी चीज़।
  • हर वह बाहरी चीज़ जो आपके IP पर भरोसा करती है। Payment gateway allowlists, webhook destinations, database firewalls, IP restrictions वाले third-party APIs। रात 03:00 बजे "site चल रही है पर checkout टूटा है" की यही सबसे बड़ी वजह होती है।
  • Package list। dpkg --get-selections या उसके बराबर कुछ, ताकि नए box में लगभग वही नहीं बल्कि बिल्कुल वही extensions और libraries हों।

copying शुरू करने से पहले यह list लिख लें। यह inventory बाद में आपका test plan भी बनती है — इसकी हर पंक्ति वह चीज़ है जिसे DNS को नए server के बारे में पता चलने से पहले वहाँ जाँचना है।

पहले नया server बनाएँ, और उस पर कुछ भी रखने से पहले उसे harden करें

destination server जल्दी order करें और उसे एक-दो दिन ख़ाली चलता रहने दें। overlap का कोई नुक़सान नहीं है — एक छोटा offshore VPS महीने के बस कुछ dollars का होता है — और इसका बहुत फ़ायदा है कि आप build उस समय-दबाव में न करें जब कोई freeze किया हुआ database इंतज़ार कर रहा हो।

पुराने environment से जान-बूझकर मेल बिठाएँ: वही distribution और major version, वही PHP या Node या Python major version, वही database major version। जब आप वहाँ हों तो modernise करने का लालच बहुत बड़ा होता है और इसे पूरी तरह टालना चाहिए। अगर cutover के बाद site टूटती है, तो आप चाहते हैं कि बदला हुआ variable बिल्कुल एक ही हो। stack को दो हफ़्ते बाद, किसी उबाऊ दोपहर में, rollback की क्षमता के साथ upgrade करें।

जब तक यह ख़ाली है, इसे harden कर लें। सिर्फ़-keys वाला SSH, एक default-deny firewall, automatic security updates — पहले घंटे की hardening checklist बिल्कुल यही list है, और इसे किसी ऐसी machine पर लागू करना कहीं आसान है जिस पर अभी कुछ भी नहीं है। अगर data इतना संवेदनशील है कि आप उसके लिए jurisdiction बदल रहे हैं, तो यही सही पल है आराम की हालत में encryption पर फ़ैसला लेने का, क्योंकि इसे बाद में जोड़ने का मतलब है एक और migration।

data को दो बार copy करें: पहले एक धीमा pass, फिर एक तेज़ pass

स्वाभाविक सोच यह होती है कि सब कुछ maintenance window के दौरान ही copy किया जाए। इसका उल्टा करें। जब पुरानी site आराम से traffic serve कर रही हो, तब दिनों पहले एक पूरी copy चला लें, फिर cutover पर एक दूसरा pass चलाएँ जो सिर्फ़ बदली हुई चीज़ें move करे। पहला pass छह घंटे ले सकता है और किसी को पता भी नहीं चलता। दूसरा नब्बे seconds लेता है, और वही आपका पूरा downtime budget है।

files के लिए, rsync -aHAX --numeric-ids permissions, ownership, hard links और extended attributes बनाए रखता है; --numeric-ids flag इसलिए मायने रखता है क्योंकि दो नई बनी machines के बीच UIDs शायद ही कभी मेल खाते हैं। इसे एक बार पहले चला लें, फिर cutover से ठीक पहले उन्हीं arguments के साथ दोबारा — दूसरी बार सिर्फ़ delta transfer होता है।

Databases को भी वही two-phase treatment चाहिए, पर अलग tools के साथ। एक mysqldump --single-transaction या pg_dump आपको एक consistent early snapshot देता है जिस पर build और test किया जा सके। cutover पर, या तो अपने छोटे write freeze के दौरान दूसरा dump ले लें, या — किसी बड़े database के लिए जहाँ एक छोटा freeze भी तकलीफ़ देता हो — नए server को दिनों पहले पुराने के एक replica के रूप में खड़ा करें, उसे catch up करने दें, और फिर उसे promote कर दें। Replication freeze को घटाकर seconds का कर देता है। यह दो घंटे के migration को दो दिन के project में भी बदल देता है, इसलिए इसे तभी इस्तेमाल करें जब size सचमुच इसकी माँग करे।

Pull करें, push नहीं, और कभी अपने laptop के ज़रिए नहीं। copy को नए server से शुरू करें ताकि transfer host से host, datacentre की रफ़्तार से चले। gigabytes को अपने घर के connection से route करना धीमा है, और यह आपके residential IP को दोनों machines के access logs में डाल देता है — जो ठीक वही link है जिससे बचने के लिए privacy-motivated migration किया जाता है। अगर पुराने host को आपका नया IP पता चलना भी स्वीकार्य नहीं है, तो सीधे copy करें ही नहीं: इसके बजाय नए server को अपने ख़ुद के off-site encrypted backup से restore करें, और दोनों machines कभी आपस में बात ही नहीं करतीं।

DNS को इसके होने का पता चलने से पहले नए server को test करें

आप बिना किसी एक भी public record को बदले असली hostname को नए IP से serve कर सकते हैं, और आपको करना भी चाहिए — यही चीज़ cutover को बेरौनक़ बना देती है। अपने local /etc/hosts में एक line जोड़ें जो domain को नए IP पर इशारा करे, या इसे छोड़ें और एक request के लिए curl से यह काम करवा लें:

curl -I --resolve example.com:443:203.0.113.10 https://example.com/

अब inventory से गुज़रें। front page और तीन गहरे pages load करें। Login करें। एक form submit करें। एक file upload करें। जाँचें कि database connection नया, local वाला है, न कि अब भी internet पर पुराने host की तरफ़ इशारा कर रहा — एक ऐसी ग़लती जो तब तक बिल्कुल सही चलती है जब तक आप पुराना server रद्द नहीं कर देते। cron jobs को हाथ से चलाकर उनका output पढ़ें। redirects जाँचें, और यह भी कि कोई ग़ायब URL अब भी 200 की बजाय 404 ही लौटाए।

TLS certificate अभी जारी करें, cutover से पहले, बाद में नहीं। एक DNS-01 challenge इस्तेमाल करें, जो एक TXT record के ज़रिए domain पर control साबित करता है और इसलिए तब भी काम करता है जब A record अब भी पुराने server की तरफ़ इशारा कर रहा हो। अगर आप DNS बदलने के बाद HTTP-01 validation का इंतज़ार करते हैं, तो उस अंतराल में हर शुरुआती visitor को certificate की चेतावनी मिलती है — यानी ठीक उसी window में एक ख़ुद-थोपा outage जिसे आप बचाने की कोशिश कर रहे थे।

Cutover, क्रम में

इस बिंदु तक नया server बन चुका है, harden हो चुका है, भर चुका है, असली hostname के तहत test हो चुका है, और उसके पास एक valid certificate है। अब cutover ख़ुद एक छोटी, उबाऊ list भर है — और यही मक़सद है।

  1. अगर site पर कोई और भी निर्भर है तो window का ऐलान करें, फिर पुरानी site को read-only या maintenance mode में डाल दें।
  2. पुराने host पर cron और background workers बंद करें। नए वाले पर इन्हें शुरू करने से पहले यह करें, बाद में कभी नहीं।
  3. आख़िरी rsync delta pass और आख़िरी database dump चलाएँ, और उसे import करें।
  4. नए server पर application शुरू करें और अपने smoke tests --resolve के ज़रिए, आख़िरी data पर दोबारा चलाएँ।
  5. A और AAAA records को नए IP पर बदलें। 300-second TTL के साथ, पूरी दुनिया पाँच मिनट के भीतर इसका अनुसरण कर लेती है।
  6. नए host पर cron और workers चालू करें।
  7. दोनों access logs साथ-साथ देखें। Traffic पुराने server से निकलकर नए पर दिखने लगता है; जब पुराना ख़ामोश हो जाए, cutover पूरा हो चुका है।
  8. पुराने server को एक हफ़्ते तक चलता, serve करता और अछूता छोड़ दें। यही आपका rollback है।

आठवाँ क़दम वही है जिसे लोग काट देते हैं, और यह इस list का सबसे सस्ता बीमा है। कुछ dollars की क़ीमत पर आप DNS को वापस इशारा करने की क्षमता बनाए रखते हैं — यानी पाँच मिनट की recovery — जब तक यक़ीन न हो जाए।

migration पीछे क्या छोड़ जाता है

यह वह हिस्सा है जिसे आम migration guides छोड़ देती हैं, और यही वह हिस्सा है जो सबसे ज़्यादा मायने रखता है अगर आप price की बजाय privacy के लिए move हुए हैं। किसी site को move करना उसकी history नहीं मिटाता। पुराने बंदोबस्त के कई public और semi-public records move के बाद भी हमेशा के लिए बचे रहते हैं, और यह जानना कि कौन-से बचते हैं, एक साफ़ break और उसके सिर्फ़ भ्रम के बीच का फ़र्क़ है।

move को कौन record करता हैउसे कौन पढ़ सकता हैआप असल में क्या कर सकते हैं
Passive DNS — पुराने A recordsकोई भी, commercial history services के ज़रिएकुछ नहीं। पुराना IP हमेशा के लिए उस नाम से जुड़ा रहता है। ऐसे plan करें जैसे यह public है, क्योंकि यह है ही
Certificate Transparency logsकोई भी, हमेशा के लिए, domain से खोजा जा सकने वालाअब तक जारी हर certificate list में है — उन internal-सी लगने वाली subdomains समेत जिन्हें आप भूल चुके हैं। descriptive नामों की बजाय एक wildcard को तरजीह दें
पुराने host के account recordsपुराना host, और वह कोई भी जो उन्हें मजबूर कर सकेCard details, signup email, login IPs। कोई no-KYC destination भविष्य को बचाता है, अतीत को नहीं
WHOIS historyCommercial WHOIS-history archivesअगर domain कभी असली details के तहत register हुआ था, तो वह snapshot दर्ज हो चुका है। बाद में लगाई गई privacy उसे वापस नहीं लेती
Analytics और ad identifiersVendor, और कोई भी जो आपका page source पढ़ लेएक जैसा tracking ID साथ ले जाना दोनों sites को निर्णायक रूप से जोड़ देता है। एक नया जारी करें, या इसे छोड़ दें
पुरानी disk पर छूटे Dumps और backupsवह जिसे भी वह storage अगली बार allocate होcancel करने से पहले delete और overwrite करें। shared storage पर मान लें कि deletion एक गारंटी नहीं, बस एक संकेत भर है
Received: headers, भेजी गई mail मेंहर recipient, हमेशा के लिएकुछ भी पीछे जाकर नहीं बदलता। सिर्फ़ वह mail जो आप move के बाद भेजते हैं, नया path लेकर चलती है
copy के दौरान आपके अपने connectionsआपका ISP, और दोनों hosts के access logsयह पूरी तरह आपके control में है। किसी भी machine को कभी ऐसे IP से न छुएँ जो आपकी पहचान बताता हो

ईमानदार सार यह है कि कोई migration अतीत को दोबारा नहीं लिख सकता — यह बस उसमें और कुछ जुड़ने से रोक सकता है। यह अब भी बहुत मायने रखता है, पर इससे फ़ैसला बदल जाता है: अगर आपके threat model को यह चाहिए कि कोई observer नई site को पुरानी से जोड़ ही न सके, तो वही domain किसी नए host पर ले जाना यह हासिल नहीं करता, और cutover के दौरान की गई कोई भी सावधानी भी नहीं करेगी। उस स्थिति को एक नए नाम और एक साफ़ शुरुआत की ज़रूरत है, जिसकी बात आगे होगी। पर अगर आपका मक़सद बस आज से पहचान बताने वाले records बनना बंद करना है, और legal centre of gravity को अपनी चुनी हुई jurisdiction में ले जाना है, तो यह move बिल्कुल यही करता है। हमारी server OpSec guide उन आदतों को बताती है जो बाद में इसे साफ़ बनाए रखती हैं।

Domain का सवाल: उसे साथ ले जाएँ, या नए सिरे से शुरू करें?

site और domain दो अलग-अलग फ़ैसले हैं, और इन्हें एक मान लेना आम बात है। आप आज ही hosting move कर सकते हैं और registrar को हमेशा के लिए वैसे ही छोड़ सकते हैं; server के बदलने में domain को छूने की कोई ज़रूरत नहीं। क्या आपको ऐसा करना चाहिए, यह पूरी तरह इस पर निर्भर करता है कि domain पहले से आपके बारे में क्या जानता है।

  • Domain रखें, registrar बदलें। समझदारी तब है जब domain की क़ीमत हो — links, rankings, ऐसा नाम जो लोग type करते हों। यह WHOIS record के भविष्य को ठीक करता है, उसकी history को नहीं, और हर ranking signal को बरक़रार रखता है। ज़्यादातर commercial sites के लिए यही सही जवाब है।
  • Domain रखें, host के अलावा कुछ न बदलें। पूरी तरह वाजिब जब आप anonymity की बजाय jurisdiction, uptime या DMCA posture के लिए move हुए हों। सबसे सरल संभव move, zero SEO risk।
  • नया domain, पुराने को redirect करें। rankings बचाता है, और दोनों नामों को publicly और हमेशा के लिए जोड़ देता है। इसे continuity के लिए चुनें, privacy के लिए कभी नहीं — redirect ख़ुद ही वह link है।
  • नया domain, साफ़ break। यही इकलौता option है जो जुड़ाव को सचमुच काट देता है, और इसकी क़ीमत आपकी हर ranking और inbound link होती है जो आपके पास थी। इसे शुरू से privately register करें, क्योंकि कोई domain उतना ही anonymous होता है जितना उसका पहला registration। हमारी crypto से anonymous domain registration guide इसे सही तरीक़े से करना बताती है।

सोच-समझकर चुनें, और cutover के दौरान नहीं, उससे पहले चुनें। DNS move होने के बाद domain को लेकर मन बदलना मतलब है नाज़ुक हिस्से को दो बार करना।

पुराने host को सही तरीक़े से decommission करें

cutover के एक-दो हफ़्ते बाद, जब नए server के logs उबाऊ हो चुके हों और पुराने के ख़ाली, तब पुराना account बंद करने का वक़्त है। इसे इसी क्रम में करें, क्योंकि जो शॉर्टकट लुभाता है — सीधे cancel दबा देना — वही आपका data किसी और की disk पर छोड़ जाता है।

  1. पुष्टि करें कि अब कुछ भी पुराने IP की तरफ़ इशारा नहीं करता: third-party webhooks, allowlists, monitoring में hardcoded addresses जाँचें, और कोई भी भूला हुआ DNS record, जैसे कोई भूला-भटका mail या cpanel subdomain।
  2. उस machine पर कभी रहा हर secret rotate करें — database passwords, API keys, application salts, DKIM keys, SSH keys। इन्हें आगे copy न करें।
  3. अपनी SSH public keys और कोई भी support access पुराने server से हटा दें।
  4. application, dumps और backups delete करें, फिर खाली जगह को overwrite कर दें ताकि recycled volume को यूँ ही पढ़ने पर कुछ भी हाथ न लगे।
  5. तभी जाकर service terminate करें, और पुराने account से कोई भी सहेजा हुआ payment method हटा दें।

जो कुछ भी ऐसे hardware पर रहा जिस पर अब आपका control नहीं, वह परिभाषा से ही compromised है। इसलिए नहीं कि आपका पुराना host बदनीयत है, बल्कि इसलिए क्योंकि वह disk वापस किसी pool में जा रही है और आपको कभी पता नहीं चलेगा कि wipe के बाद क्या बचा। database password rotate करने में दो मिनट लगते हैं। महीनों बाद यह पता चलना कि किसी decommissioned server की एक key अब भी कुछ खोल देती है, कहीं ज़्यादा समय लेता है।

पूरा क्रम, एक ही page पर

तर्क हटा दें तो host migration नौ क़दमों का है, जिनमें से सिर्फ़ दो में ही कोई जल्दबाज़ी है:

  1. दो दिन पहले: DNS TTL को 300 seconds तक घटाएँ।
  2. दो दिन पहले: destination server order करें और उसे harden करें, पुराने stack से version-दर-version मेल बिठाते हुए।
  3. कई दिन पहले: inventory लिखें — cron, secrets, TLS, mail keys, media, IP allowlists, packages।
  4. कई दिन पहले: पहली पूरी data copy चलाएँ, host से host।
  5. window से पहले: DNS-01 से certificate जारी करें और सब कुछ --resolve के ज़रिए test करें।
  6. Window (मिनट): writes freeze करें, पुराना cron बंद करें, delta copy और आख़िरी dump चलाएँ, नया app शुरू करें।
  7. Window (seconds): A record बदलें, फिर नए host पर cron चालू करें।
  8. अगले हफ़्ते: पुराने server को rollback के तौर पर ज़िंदा रखें, दोनों log files देखते रहें, फिर TTL को दोबारा बढ़ा दें।
  9. बाद में: secrets rotate करें, wipe करें, cancel करें — और याद रखें कि move क्या नहीं मिटा सका।

उस list में कुछ भी मुश्किल नहीं है। जो भी क़दम तकलीफ़ देता है, वह ग़लत क्रम में उठाया गया क़दम होता है — रात को घटाया गया TTL, DNS बदलने के बाद जारी किया गया certificate, कोई cron job किसी ऐसी machine पर चालू छोड़ा गया जो अब authoritative नहीं रही। क्रम सही रखें, और फिर migration का दिलचस्प हिस्सा यह तय करना रह जाता है कि server कहाँ रखा जाए, न कि move ख़ुद। अगर आपने अभी तक यह तय नहीं किया, तो jurisdiction guide से शुरुआत करें।

FAQ

Host migration — अक्सर पूछे जाने वाले सवाल

01 मुझे असल में कितने downtime की उम्मीद रखनी चाहिए?

किसी static site के लिए, बिल्कुल कुछ नहीं — दोनों servers एक साथ वही content serve कर सकते हैं, इसलिए DNS बदलाव किसी को दिखता ही नहीं। database वाली किसी भी चीज़ के लिए, आपका downtime ठीक आपके write freeze जितना लंबा होता है, जो आमतौर पर दो से दस मिनट का होता है अगर आपने पहले से एक पूरी data copy चला रखी हो। जो संख्या मायने रखती है वह यह नहीं कि DNS कितनी तेज़ी से बदलता है; यह है कि आप window के दौरान कितना copy करते हैं। लगभग सब कुछ दिनों पहले copy कर लें, और window सिकुड़कर बस delta जितना रह जाता है।

02 DNS propagation में कितना समय लगता है?

कोई propagation होता ही नहीं — यह शब्द असल में एक ऐसी चीज़ बताता है जो होती ही नहीं। Resolvers बस आपके record को उतनी देर तक cache करते हैं जितना उसका TTL कहता है, और expire होने पर दोबारा पूछते हैं। अगर उस वक़्त लागू TTL 86400 था, तो कुछ resolvers अगले 24 घंटों तक पुराना IP ही देते रहेंगे। TTL को cutover से कम से कम एक पूरे पुराने-TTL period पहले 300 seconds तक घटा दें, और पूरा internet आपके बदलाव को पाँच मिनट के भीतर अपना लेता है।

03 क्या मुझे अपना domain भी move करना पड़ेगा?

नहीं। registrar और host पूरी तरह स्वतंत्र हैं, और domain को बिल्कुल जहाँ है वहीं छोड़कर site move करना पूरी तरह ठीक से चलता है। क्या आपको इसे move करना चाहिए, यह आपके migrate करने की वजह पर निर्भर करता है: अगर वजह jurisdiction, price या DMCA posture थी, तो domain को छेड़ें ही नहीं। अगर वजह anonymity थी, तो ध्यान रखें कि domain अपनी अलग history साथ लेकर चलता है — WHOIS archives वही details रखते हैं जिनके साथ वह पहली बार register हुआ था, और hosting में बदलाव उसे छूता ही नहीं।

04 क्या मैं बिना पुराने host को यह पता चले कि मैं कहाँ गया, migrate कर सकता हूँ?

नहीं, अगर आप दोनों machines के बीच सीधे copy करते हैं — एक सिरा दूसरे से जुड़ता है, और दोनों तरफ़ के access logs इसे दर्ज कर लेते हैं। अगर यह link सचमुच आपके threat model के लिए मायने रखता है, तो host से host copy करें ही नहीं: इसके बजाय नए server को अपने ख़ुद के off-site encrypted backup से restore करें, ताकि दोनों providers कभी कोई packet आपस में साझा ही न करें। जो भी करें, transfer को कभी ऐसे connection से शुरू न करें जो आपकी पहचान बताता हो, और पुराने provider के पास खोले गए किसी भी support ticket में destination का ज़िक्र न आने दें।

05 क्या मुझे OS या stack को भी उसी समय upgrade कर देना चाहिए?

नहीं, और यही सबसे आम ख़ुद-थोपी हुई migration विफलता है। एक बार में एक ही चीज़ बदलें। अगर cutover के बाद site बदतमीज़ी करे तो आप चाहते हैं कि उसकी वजह बताने वाला उम्मीदवार सिर्फ़ एक हो, न कि नई machine, नए PHP version और नए database major के बीच का कोई चुनाव। पुराने environment से version-दर-version मेल बिठाएँ, move पूरा करें, एक हफ़्ते के साफ़ logs की पुष्टि करें, फिर rollback की क्षमता के साथ अलग से upgrade करें।

06 क्या migrate करने से मेरी search rankings को नुक़सान पहुँचेगा?

कोई ख़ास फ़र्क़ नहीं, बशर्ते domain, URLs और content वही रहें — Google URLs को index करता है, IP addresses को नहीं, और सिर्फ़ host बदलना अपने आप में कोई ranking signal नहीं है। URL structure को बिल्कुल वही रखें, वही status codes लौटाएँ, और move को किसी redesign या URL scheme बदलाव के साथ न मिलाएँ। अगर आप इसकी बजाय किसी नए domain पर जा रहे हैं, तो सही 301 redirects के साथ भी कुछ समय के लिए गिरावट की उम्मीद रखें, और यह समझें कि वे redirects दोनों नामों को publicly भी जोड़ देते हैं।

07 क्या मुझे TLS certificates दोबारा जारी करने होंगे?

हाँ — नए server को अपना ख़ुद का certificate और private key चाहिए, और पुरानी key को आगे copy करते रहना एक बुरी आदत है, भले ही यह technically चल जाए। इसे cutover से पहले एक DNS-01 challenge के ज़रिए जारी करें, जो एक TXT record के ज़रिए validate होता है और इसलिए तब भी कामयाब रहता है जब A record अब भी पुराने host की तरफ़ इशारा कर रहा हो। DNS बदलने के बाद HTTP-01 का इंतज़ार करना, ठीक उसी window में certificate चेतावनियों का एक सिलसिला तय कर देता है जिसे आप बचाने की कोशिश कर रहे थे।

08 पुराने server को cancel करना कब सुरक्षित है?

पुरानी machine पर एक-दो हफ़्ते के ख़ामोश logs और नई पर साफ़ logs के बाद — यह देरी ही आपका rollback है, और इसकी क़ीमत बस कुछ dollars है। cancel करने से पहले जाँच लें कि अब कोई बाहरी चीज़ पुराने IP की तरफ़ इशारा नहीं करती, उस पर कभी रहे हर secret को rotate करें, फिर अपना data delete करके खाली जगह को overwrite कर दें। cancel सबसे आख़िर में करें। पहले terminate दबाना आपका database ऐसी disk पर छोड़ देता है जिस पर अब आपका control नहीं।

Migration को उतरने के लिए एक जगह दें

सात jurisdictions में offshore KVM servers, $7.50/माह से शुरू, पूरे root access, NVMe storage और unmetered bandwidth के साथ, crypto payment confirm होते ही पाँच मिनट से भी कम में deploy। destination को जल्दी खड़ा करें, अपनी रफ़्तार से copy करें, और जब तैयार हो तब cut over करें।

VPS प्लान देखें ऑफशोर होस्टिंग सभी लोकेशन