बदलते सर्वर - नए आईपी पर अनुप्रेषित = कोई डाउनटाइम नहीं?


13

मैं अपनी वेबसाइट के सर्वर बदल रहा हूं। पुराने सर्वर के IP को नए पर नहीं ले जाया जा सकता है। कोई डाउनटाइम करने के लिए मैं निम्नलिखित करने की योजना बना रहा हूं, कृपया किसी ने पुष्टि की कि यह काम करेगा:

  1. नया सर्वर सेट करें और नए आईपी पर सुनें
  2. पुराना सर्वर नए आईपी के लिए सभी ट्रैफ़िक को पुनर्निर्देशित करता है
  3. नए IP को इंगित करने के लिए DNS रिकॉर्ड्स बदलें

मेरा तर्क मुझे बताता है कि जब मैं अपने पुराने बॉक्स से नए आईपी पर पुनर्निर्देशित करता हूं, तो उपयोगकर्ता ब्राउज़र में डोमेन नाम नहीं देखेगा, लेकिन नया आईपी देखेगा। क्या नए आईपी पर पुनर्निर्देशित करने और इसके साथ HOSTNAME को भेजने का कोई तरीका है ताकि उपयोगकर्ता ब्राउज़र में डोमेन नाम देख सके?

Im ऐसा कर रहा है क्योंकि साइट निरंतर उपयोग में है और बस DNS सेटिंग्स बदलना नहीं होगा क्योंकि डेटाबेस प्रचार के दौरान नए और पुराने सर्वर के बीच समन्वयित नहीं किया जाएगा।


3
आपने शायद इसके बारे में सोचा है लेकिन इसका उल्लेख नहीं किया है: प्रासंगिक DNS प्रविष्टियों के TTL को कम करना न भूलें।
cjc

क्या यह वेबसाइट केवल मनुष्यों द्वारा उपयोग की जाती है या क्या ऐसे अनुप्रयोग हैं जो इससे जुड़ सकते हैं? जैसे वेब सेवाओं की खपत? अगर ऐसा है तो आपके पास डाउनटाइम हो सकता है। जावा DNS परिणाम को कैश करता है और वे पुनः आरंभ होने तक नई DNS प्रविष्टि का सम्मान नहीं कर सकते हैं। जब तक आप अग्रेषण को लंबे समय तक ऑनलाइन नहीं रख सकते। इसके अलावा, यदि आप एन्क्रिप्शन का उपयोग करते हैं तो wil कुछ अतिरिक्त चरणों को शामिल करता है।
ब्रैम

आप किस तरह के डेटाबेस का उपयोग कर रहे हैं? आप सही हैं कि डीएनएस डाउनटाइम की समस्या को हल नहीं करेगा, मैं अपनी नौकरी में हर समय ऐसा करता हूं और आपको विस्तृत कदम दे सकता हूं, लेकिन अगर आप उसी सर्वर पर डेटाबेस करते हैं तो यह एक छोटी समस्या है जो आमतौर पर आसानी से खत्म हो जाती है आइए।
एंथनी फोरनिटो

यह भी कि आपके पास किस तरह का सर्वर है विंडोज़ या लिनक्स, जवाब के कुछ पढ़ने के बाद वे सभी को इंगित करते हैं, लेकिन मैं वास्तव में आपके प्रश्न में कुछ भी नहीं देखता हूं कि आप आईआईएस बनाम लिनक्स स्वाद का उपयोग कर रहे हैं
एंथनी फोर्निटो

जवाबों:


19

यहाँ विधि है कि मेरे लिए काम किया है:

  1. नए सर्वर के साथ फाइल और डेटाबेस को सिंक करें।
  2. कट-ऑफ से ठीक पहले पुनः सिंक करें।
  3. नए सर्वर को इंगित करने के लिए DNS को बदलें।
  4. DNS प्रसार पूरा होने तक नए सर्वर पर पुराने आईपी में आने वाले अनुरोध को अग्रेषित करें।

यहां बताया गया है कि मैं चरण 4 कैसे करूंगा:

हम पोर्ट 80 पर आने वाले सभी ट्रैफ़िक को पुनर्निर्देशित करने के लिए लिनक्स सर्वर पर IPTables को कॉन्फ़िगर करेंगे, (जो कि डिफ़ॉल्ट वेब सर्वर पोर्ट है), आईपी के साथ सर्वर पर 122.164.34.240। इस तरह के फ़ॉरवर्डिंग की अनुमति देने के लिए आपका लिनक्स बॉक्स सेट करना पहला कदम है। एक टर्मिनल विंडो खोलें, रूट उपयोगकर्ता के रूप में लॉग इन करें और निम्न कमांड चलाएँ:

# echo 1 >/proc/sys/net/ipv4/ip_forward

अगला चरण IPTables को नए सर्वर पर ट्रैफ़िक को पुनर्निर्देशित करने के लिए कहना है:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 122.164.34.240

यहाँ जहाँ IPTables का जादू होता है। तीसरे और अंतिम चरण के साथ, हम पुराने सर्वर से आने के लिए नए सर्वर के पोर्ट 80 पर कनेक्शन की उत्पत्ति को फिर से लिखने के लिए IPTables को बताते हैं।

# iptables -t nat -A POSTROUTING -p tcp -d 122.164.34.240 --dport 80 -j MASQUERADE

अंतिम चरण की आवश्यकता है क्योंकि यदि हम नए सर्वर के वेब सर्वर को यह नहीं बताते हैं कि कनेक्शन क्लाइंट मशीनों से आ रहे हैं, तो यह सोचेंगे कि वे पुराने सर्वर से उत्पन्न हो रहे हैं।

आप डेटाबेस और ईमेल सर्वर पोर्ट के लिए भी इसे दोहराना चाह सकते हैं।


क्या आपका मतलब था -D की बजाय -D ?? -D एक नियम को हटाना है, है ना? वैसे भी, मैंने यह करने के बाद कि पुराने बॉक्स को निश्चित रूप से पुनर्निर्देशित करने की कोशिश कर रहा है क्योंकि यह अब वेब लोड नहीं कर रहा है, लेकिन यह विफल रहता है क्योंकि नया वेब या तो नहीं दिखा रहा है, बस कनेक्शन टाइम आउट कहता है। क्या मुझे कोई अन्य सेटिंग करनी है? शायद मेरे नए बॉक्स पर कुछ?
डेनिस पशेनोव

कोई बात नहीं, मैंने इसे ठीक कर लिया! मेरे शार्टवेल को चालू करने से पुनर्निर्देश अवरुद्ध हो रहा था। मैंने इसे नियमों में अनुमति दी थी।
डेनिस पशेनोव

मैं इस बारे में माफी चाहता हूं। आप सही कह रहे हैं, यह था-ए और डी नहीं। मैंने पोस्ट अपडेट कर दी है।
शाइन पद्मजान

1
बस एक चेतावनी - iptables का उपयोग करने वाला दृष्टिकोण नई साइट पर सभी ट्रैफ़िक को अग्रेषित करेगा, लेकिन जब यह वहां पहुंचता है, तो यह आपके पुराने सर्वर से उत्पन्न हुआ प्रतीत होगा और मूल ब्राउज़र के वास्तविक आईपी पते से नहीं। यह भौगोलिक विश्लेषण जैसी चीजों को तोड़ देगा। विशेष रूप से, कभी भी ईमेल के लिए पोर्ट 25 को फॉरवर्ड करने का प्रलोभन न दें या आप गलती से एक ओपन रिले बना सकते हैं क्योंकि पुराने सर्वर के माध्यम से एक स्पैमर से मेल आपके नए सर्वर द्वारा माना जाएगा क्योंकि यह आपकी खुद की मशीनों में से एक था अच्छी तरह से भरोसा किया और रिले करने की अनुमति दी।
गैरी बिल्कस

@ शाहीनपद्मजन, हालांकि देर से, बहुत बहुत धन्यवाद, यह 2015 में भी आकर्षण की तरह काम किया
अभिषेक माधवानी

5

आप कई ए-रिकॉर्ड्स जोड़ने पर भी गौर कर सकते हैं। उदाहरण के लिए, Google इसका उपयोग करता है, उनके nslookup आउटपुट की जाँच करें:

Name:       google.com
Addresses:  209.85.148.101
            209.85.148.102
            209.85.148.113
            209.85.148.138
            209.85.148.100
            209.85.148.139

यदि आप एक डोमेन में कई ए-रिकॉर्ड जोड़ते हैं, तो आगंतुक कई आईपी प्राप्त करेंगे और उन्हें उसी क्रम में आज़माएंगे। यदि कोई विफल रहता है, तो क्लाइंट अगले एक पर जाने की कोशिश करता है।

नए IP को अतिरिक्त A-record के रूप में 24 घंटे सामने रखें, नया सर्वर शुरू करें, पुराने को बंद करें, IP निकालें।


सिवाय, जब तक नया सर्वर शुरू नहीं किया गया है, तब तक ए रिकॉर्ड न जोड़ें। :)
आरोन कोपले

@Aaron: क्यों नहीं? A रिकॉर्ड जोड़ने में कई घंटे लगते हैं (पूरी तरह से सक्रिय होने के लिए 24 घंटे तक), और जब तक कि दूसरा सर्वर नहीं होता है, ग्राहक पहले एक को चुनेंगे।
ज्योपोडोगे

जब किसी क्षेत्र के लिए TTL की समय सीमा समाप्त हो जाती है तो आपका नेम रिसोर्स फिर से संसाधन के लिए क्वियर होता है और उसे दोनों उत्तर मिलेंगे। यदि आप नया ए रिकॉर्ड जोड़ते हैं और सर्वर को शुरू करने के लिए कुछ मनमानी राशि का इंतजार करते हैं, तो लोग संभवतः पहले से ही एक होस्ट के लिए हल कर रहे हैं जो अभी तक उपलब्ध नहीं है। यदि नया सर्वर पहले से ही है, तो आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।
एरोन कोपले

1

एक अन्य विकल्प वीआईपी (वर्चुअल आईपी) का उपयोग करना है। तो, आपके कदम होंगे:

  1. नया सर्वर सेट करें और नए आईपी पर सुनें।
  2. पुराने सर्वर में एक VIP जोड़ें।
  3. VIP IP को इंगित करने के लिए DNS रिकॉर्ड बदलें। अब तक सभी ट्रैफ़िक अभी भी पुराने सर्वर पर भेजे जाएंगे लेकिन वीआईपी का उपयोग करके।
  4. जाने के लिए तैयार होने पर, वीआईपी को नए सर्वर पर ले जाएं।
  5. वैकल्पिक रूप से, आप DNS को नए सर्वर आईपी में बदल सकते हैं और DNS से ​​वीआईपी (कुछ समय बाद) निकाल सकते हैं।

मुझे आपका हल पसंद है। लेकिन मैं वीआईपी से परिचित नहीं हूं और कैसे प्राप्त करूं। क्या आप सही दिशा में इशारा कर सकते हैं?
डेनिस पशेनोव

यह वास्तव में सरल है। एक कमांड जैसा ifconfig eth0:0 <ip> <mask> upकि आईपी के साथ कॉन्फ़िगर किया गया एक उप-इंटरफ़ेस बनाएगा, और ifconfig eth0:0 downइसे निष्क्रिय करने के लिए पर्याप्त है।
खालिद

0

ठीक है, चूंकि आपने डेटाबेस प्रतिकृति के बारे में उल्लेख किया है, आपको निम्नलिखित कार्य करने होंगे।

  1. दो सर्वरों में डेटाबेस के बीच सेटअप प्रतिकृति।
  2. कटओवर के दौरान, नए सर्वर की डीबी को प्राथमिक और पुराने सर्वर को आसानी से पढ़ें।
  3. अनुप्रयोग के डेटाबेस कनेक्शन को पुराने और नए सर्वर दोनों पर नए सर्वर पर इंगित करें। यदि आपकी साइट सत्र का उपयोग करती है, तो सुनिश्चित करें कि सत्र DB में जारी है।
  4. DNS में IP एड्रेस को नए सर्वर में बदलें।
  5. कम से कम 48 घंटे के लिए दोनों सर्वर चलाते रहें।

0
  1. नया सर्वर सेट करें और नए आईपी पर सुनें
  2. फिर पारदर्शी पुनर्निर्देशन कॉन्फ़िगर करें। पुराने सर्वर पर rinetd स्थापित करें।

Rinetd.conf में:

OLD_SERVER_IP 80 NEW_SERVER_IP 80
  1. नए IP को इंगित करने के लिए DNS रिकॉर्ड्स बदलें

मैंने apt-get install rinetd किया, /etc/rinetd.conf को नई सेटिंग्स में बदल दिया, /etc/init.d/rinetd पुनरारंभ के साथ पुनः आरंभ किया, लेकिन यह रीडायरेक्ट नहीं हुआ। कुछ भी नहीं दिखा लॉग में /var/run/rinetd.log
डेनिस पशेनोव

कृपया iptables-save करके दिखाएं cat /etc/sysctl.conf | grep ip_forward
यदाया

0

आप अपने वेब सर्वर के सामने हा-प्रॉक्सी का उपयोग कर सकते हैं, जब उनमें से एक रखरखाव मोड में जा रहा है माध्यमिक सर्वर को संभाल लेगा।


-1

क्या करना है की आपकी सूची काफी समझदार लगती है।

एक उदाहरण के रूप में, यह मानते हुए कि आप अपाचे का उपयोग करते हैं, जब आप पुराने सर्वर पर अपाचे में ऐसा कुछ करते हैं:

redirect permanent / http://newserver.example.com

जब वे पुरानी साइट पर ब्राउज़ करेंगे, तो उपयोगकर्ता को ब्राउज़र में नया डोमेन दिखाई देगा। इस मामले में जब तक ब्राउज़र चल रहा है तब तक रीडायरेक्ट भी स्थायी है।

इसलिए जब तक आप अपने वेब सर्वर में अपने अन्य परिवर्तनों के अलावा किसी तरह के पुनर्निर्देश को लागू करते हैं, आपको ठीक होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.