国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

線上多域名實戰(zhàn)

這篇具有很好參考價值的文章主要介紹了線上多域名實戰(zhàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文博主給大家分享線上多域名實戰(zhàn),當(dāng)線上主域名不可用的情況下,啟用備用域名完成網(wǎng)站高可用保障。

網(wǎng)站的高可用性一直是網(wǎng)站運維的重中之重。一旦網(wǎng)站宕機,不僅會造成巨大的經(jīng)濟損失,也會嚴重影響用戶體驗。備份域名就是一種實現(xiàn)網(wǎng)站高可用的重要手段。通過備份域名,可以在主域名不可訪問時快速切換域名,保證網(wǎng)站正常運行。

一、前情回顧

博主上個星期,線上項目突然出現(xiàn)了少量用戶無法打開項目網(wǎng)站,技術(shù)支持聯(lián)系技術(shù)人員(也就是博主我)在用戶電腦上復(fù)現(xiàn)了這一情況。

經(jīng)過博主排查,發(fā)現(xiàn)在客戶電腦訪問主域名時,會出現(xiàn)連接超時,通過 curl 進一步分析連接詳情,舉例如下:

C:\Users\16697>curl -v www.wayn.com

* Uses proxy env variable http_proxy == 'http://11.22.11.22:4780'
*   Trying 11.22.11.22:4780...

發(fā)現(xiàn)線上主域名在用戶電腦上返回的 CDN 節(jié)點 11.22.11.22 存在訪問不通的情況。博主便跟運維溝通 CDN 節(jié)點不通的問題,運維回復(fù)是 CDN 節(jié)點不通是無法避免的,要看 CDN 廠商對于用戶的覆蓋情況,建議線上項目使用多域名,并且每個域名使用不同的 CDN 廠商,最大限度避免主備域名都不可用。

OK,得到的運維的意見,我們開始著手做多域名實現(xiàn)方案。

二、購買備用域名

實現(xiàn)域名高可用解決方案,首先需要準(zhǔn)備一到兩條與主域名功能和形式相似的備份域名。如下

主域名
www.wayn.com

備用域名一
bak1.wayn.com

備用域名二
bak2.wayn.com

購買備份域名后,需要注意一下兩點:

  1. 需要在域名服務(wù)商那設(shè)置DNS記錄,將主域名和備份域名指向同一個IP地址。同時也需要為兩個域名設(shè)置相同的CDN加速和安全證書,保證用戶訪問體驗一致。
  2. 將備份域名的網(wǎng)站配置(nginx配置文件)與主域名保持一致。確保使用備份域名也可以訪問我們的網(wǎng)站。

三、主備域名切換實戰(zhàn)

這里我們介紹一下通過 JavaScript 代碼來實現(xiàn)網(wǎng)站的主備域名如何進行切換。

JavaScript 實現(xiàn)域名切換的流程如下:

  1. 在頁面啟動時,首先發(fā)起對主域名的請求,判斷其是否能夠正常響應(yīng)。如果啟動時主域名不可訪問,就會訪問備份域名。針對每個備用域名每隔一秒發(fā)送三次請求,如果都能訪問成功則認為備用域名可用。代碼如下:
// ES6 的模塊引入方式
import fetch from 'node-fetch'

const domain = 'https://www.wayn111.com'
const bakDomains = ['http://bak1.wayn.com', 'http://baidu.com']

masterDomainCheck()

// 主域名檢測,如果不可用會檢查備用域名是否可用
async function masterDomainCheck() {
  try {
    await fetch(domain)
    console.log('主域名啟用成功')
  } catch (e) {
    // console.log(e)
    try {
      await getBakDomain()
      console.log('備用域名可用')
    } catch (e) {
      console.log('備用域名也不可用')
    }
  }
}

// 訪問備用域名,返回其中可用的一個域名
async function getBakDomain() {
  const apiPromiseList = []
  for (let i = 0; i < bakDomains.length; i++) {
    apiPromiseList.push(
      new Promise((resolve, reject) => {
        bakDomainCheck(bakDomains[i], 3, resolve, reject)
      })
    )
  }
  return await Promise.any([...apiPromiseList])
}

// 域名檢測邏輯
async function bakDomainCheck(url, count, resolve, reject) {
  console.log(count)
  if (count > 0) {
    try {
      await fetch(url)
      bakDomainCheck(url, --count, resolve, reject)
    } catch (e) {
      console.log('e')
      reject(e)
    }
  } else {
    console.log(`bak domain:${url} access success`)
    resolve({ url, count })
  }
}

以上代碼經(jīng)過博主實測,大家感興趣可以將代碼拷貝在本地跑一遍。

  1. 如果主域名啟動時正常,則開始定時監(jiān)測主域名的可訪問性。每30秒發(fā)起一次請求,判斷主域名的HTTP狀態(tài)碼是否為200。
// 主域名正常,開始定時監(jiān)測
setInterval(() => {
  fetch('https://www.wayn111.com')
    .then(res => {
      if (res.status !== 200) {
        switchDomain() 
      }
    })  
}, 30000)
  1. 一旦監(jiān)測到主域名故障,開始調(diào)用 JavaScript 函數(shù),找到頁面所有包含主域名的鏈接,并將其替換為備份域名。
// 開始替換頁面內(nèi)域名為備份域名
function switchDomain() {
  let links = document.querySelectorAll('a')
  for (let i=0; i<links.length; i++) {
    if (links[i].href.indexOf('https://www.wayn111.com') > -1) {
      links[i].href = links[i].href.replace('https://www.wayn111.com'
              , 'https://bak1.wayn.com')
    }
  }
}
  1. 繼續(xù)定時監(jiān)測主域名,在主域名恢復(fù)正常時,調(diào)用 JavaScript 函數(shù)將備份域名的鏈接替換回主域名。
// 定時檢查主域名故障恢復(fù),一旦恢復(fù)再切回主域名  
setInterval(() => {
  fetch('https://www.wayn111.com')
    .then(res => {
      if (res.status === 200) { 
        switchDomainBack()
      }
    })  
}, 5000)

function switchDomainBack() {
  let links = document.querySelectorAll('a')
  for (let i=0; i<links.length; i++) {
    if (links[i].href.indexOf('https://bak1.wayn.com') > -1) {
      links[i].href = links[i].href.replace('https://bak1.wayn.com'
              , 'https://www.wayn111.com')
    }
  }
}
  1. 這樣通過 JavaScript 檢測域名狀態(tài)與自動切換,可以最大限度減少域名切換造成的訪問中斷時間,確保網(wǎng)站高可用。

希望大家通過這個案例,能對線上用多域名來實現(xiàn)高可用網(wǎng)站有一個較為全面的認知。網(wǎng)站過于依賴某單一域名存在潛在風(fēng)險,備份域名的引入主要是解決少數(shù)場景下用戶訪問不通我們網(wǎng)站的問題。

最后感謝大家閱讀,喜歡的朋友可以點贊加關(guān)注,你的支持將是我的更新動力??。

公眾號【waynblog】每周更新技術(shù)干貨、線上項目實戰(zhàn)經(jīng)驗、高效開發(fā)工具等。文章來源地址http://www.zghlxwxcb.cn/news/detail-421758.html

到了這里,關(guān)于線上多域名實戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • vue 封裝request請求 多域名訪問

    1.需求 我現(xiàn)在一個項目 有可能涉及到的數(shù)據(jù)多 服務(wù)器壓力大,所以需要配置多個服務(wù) 就出現(xiàn)了一個問題,當(dāng)?shù)谝粋€服務(wù) 調(diào)用不通或者失敗了 立馬換下一個域名調(diào)用 接口都是一一樣的 就是 前段部分的域名不同 2.實現(xiàn) 3.總結(jié) 我這個域名目前配置了兩個域名 當(dāng)前就是第一個域

    2024年02月20日
    瀏覽(98)
  • PositiveSSL和Sectigo的多域名證書

    PositiveSSL和Sectigo的多域名證書

    首先,我們要知道PositiveSSL是Sectigo旗下的子品牌,提供多種類型的SSL數(shù)字證書,包括DV基礎(chǔ)型的多域名SSL證書。Sectigo的SSL證書產(chǎn)品同樣比較豐富,不僅有DV基礎(chǔ)型多域名SSL證書,還有OV企業(yè)型以及EV增強型的多域名SSL證書。今天就隨SSL盾小編了解PositiveSSL和Sectigo旗下的多域名

    2024年01月25日
    瀏覽(91)
  • nginx 配置多域名多站點 Ubuntu

    nginx 配置多域名多站點 Ubuntu

    nginx 的配置文件在 /etc/nginx 目錄下,它的默認內(nèi)容是這樣的 講一下如何一個服務(wù)器配置多域名多站點。 多站點的實現(xiàn)方式有幾種: 多域名、多站點 多端口、多站點 比如 a.com b.com 都指向了服務(wù)器 1.2.3.4 ,我們需要實現(xiàn)的是在訪問這兩個域名的時候出現(xiàn)的是不同的網(wǎng)站,他們

    2024年02月14日
    瀏覽(94)
  • 如何構(gòu)建多域名HTTPS代理服務(wù)器轉(zhuǎn)發(fā)

    如何構(gòu)建多域名HTTPS代理服務(wù)器轉(zhuǎn)發(fā)

    在當(dāng)今互聯(lián)網(wǎng)時代,安全可靠的網(wǎng)絡(luò)訪問是至關(guān)重要的。本文將介紹如何使用SNI Routing技術(shù)來構(gòu)建多域名HTTPS代理服務(wù)器轉(zhuǎn)發(fā),輕松實現(xiàn)多域名的安全訪問和數(shù)據(jù)傳輸。 SNI代表\\\"Server Name Indication\\\",是TLS協(xié)議的擴展,用于在HTTPS握手過程中傳遞目標(biāo)服務(wù)器的域名信息。通過SNI R

    2024年02月10日
    瀏覽(88)
  • 解決dedecms多域名和站點的綁定的問題

    dedecms可以實現(xiàn)多級域名,不同域名的綁定,而且僅僅一套程序就可以搞定,這樣以后用dede做站群是最好不過了,同一個主題的站,就只用一套dede來做。閑話少說,自己在網(wǎng)上找了很多教程,發(fā)現(xiàn)很多都很殘舊的了,要么是老程序,要么就是不行的。 先分享一下在網(wǎng)上找的這

    2024年02月02日
    瀏覽(25)
  • nginx快速部署一個網(wǎng)站服務(wù) + 多域名 + 多端口

    nginx快速部署一個網(wǎng)站服務(wù) + 多域名 + 多端口

    ????? 博主簡介 ????云計算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 ????華為云開發(fā)者社區(qū)專家博主 ????阿里云開發(fā)者社區(qū)專家博主 ?? 交流社區(qū): 運維交流社區(qū) 歡迎大家的加入! ?? 希望大家多多支持,我們一起進步!?? ??如果文章對你有幫助的話,歡迎 點贊 ???? 評論 ?? 收藏

    2024年02月08日
    瀏覽(30)
  • nginx部署以及反向代理多域名實現(xiàn)HTTPS訪問

    nginx部署以及反向代理多域名實現(xiàn)HTTPS訪問

    直接進入/opt/nginx_main/nginx-info里面創(chuàng)建了 選擇域名 然后配置免費ssl證書 證書設(shè)置我們需要的域名 然后申請之后稍等一段時間 之后點擊下載,下載nginx的證書文件 一個pem,一個key 然后把下載的證書放到上面的 ssl路徑 記錄好位置即可,步驟 2.5會用到 1.先進入阿里云的數(shù)字證

    2024年02月12日
    瀏覽(26)
  • 【五一創(chuàng)作】多域名環(huán)境和Office 365混合部署方案

    目錄 ? 一、多域名環(huán)境是什么? 二、Office 365是什么? 三、多域名環(huán)境與Office 365的結(jié)合 總結(jié) ? 多域名環(huán)境指的是一個企業(yè)擁有多個域名,這些域名可能隸屬于不同的子公司、部門或者品牌,但是都歸屬于同一個母公司。例如,一個中國電信集團旗下有中國電信、中國移動、

    2024年02月02日
    瀏覽(29)
  • 企業(yè)型多域名SSL證書怎么申請?有哪些流程?

    隨著越來越多的交流和交易發(fā)生在互聯(lián)網(wǎng)上,保護敏感數(shù)據(jù)和建立用戶信任成為企業(yè)的首要任務(wù)。HTTPS協(xié)議是一種關(guān)鍵的安全措施,用于保護數(shù)據(jù)傳輸?shù)臋C密性和完整性。為了實施HTTPS,企業(yè)可以選擇安裝SSL證書。而對于需要保護多個域名的企業(yè),企業(yè)型 多域名SSL證書 是理想

    2024年02月06日
    瀏覽(96)
  • 踩坑日記-nginx server_name配置多域名的坑

    項目配置了多個域名,如下,php 代碼中有獲取 $_SERVER[\\\'SERVER_NAME\\\'] 的值。 當(dāng)訪問 a.demo.com 時,其獲取的值是符合預(yù)期的。但是當(dāng)訪問 b.demo.com 時,其獲取的值還是 a.demo.com ,導(dǎo)致代碼中的判斷出現(xiàn)錯誤。 當(dāng) nginx 的一個 server 節(jié)點下,server_name 配置多個域名時,$server_name 變量

    2024年02月11日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包