乾貨 | 京東雲部署Wordpress最佳實踐

京東科技開發者發表於2019-03-20

摘要

傳統的IT環境構建是比較複雜的過程。從安裝硬體、配置網路、安裝軟體、應用、配置儲存等,許多環節都需要一定的技術力量儲備。當環境發生改變時,整個過程需要重複進行。我們都知道,不同的人安裝配置的環境會又很大差異。放在複雜的企業環境來考慮,即使有說明,仍然無法保證環境的一致性。

眾所周知,傳統伺服器包含處理器、儲存、網路、電源、風扇等模組裝置。與傳統伺服器相比,雲主機關注的是高效能吞吐量計算能力,關注的是在某段時間內的工作量總和。因此,雲主機在架構上和傳統的伺服器有著很大的區別。

本文以Wordpress為例,介紹Web網站在京東雲上的最佳實踐經驗。使用到的京東雲產品包含雲主機、負載均衡、雲RDS、雲Redis、高可用組、私有網路、基礎DDOS防護。WordPress是一個流行的基於PHP和MySQL的開源部落格平臺和內容管理系統(CMS)。本文詳細說明Wordpress部署過程,使用到的京東雲產品包含雲主機、負載均衡、雲RDS、雲Redis、高可用組、私有網路、基礎DDOS防護。

在這裡插入圖片描述

產品配置列表

在這裡插入圖片描述

私有網路

1 私有網路(VPC) 京東雲私有網路(Virtual Private Cloud,簡稱VPC),是您在京東公有云上自定義的邏輯隔離的網路空間,與您在資料中心搭建的傳統網路類似,此私有網路空間由使用者完全掌控,支援自定義網段劃分、路由策略等。使用者可以在VPC內建立和管理多種雲產品,如雲主機、負載均衡等,同時可配置網路內的資源連線Internet。另外,您可以通過VPN\專線接入,打通您的IDC內網和京東雲網路,實現應用的混合雲部署,以及將應用平滑地遷移至雲上。

在這裡插入圖片描述

2 子網 子網是所屬VPC IP地址範圍內的 IP 地址塊。目前私有網路中的雲資源部署在子網內,如雲主機、容器、負載均衡等。子網位於VPC內,在建立 VPC後,您可以在VPC下建立子網。同一VPC下子網的網段不可以重疊,不同VPC下子網的網段可以重疊。

京東雲的子網在地域下為跨可用區部署,您在建立子網時無需選擇AZ區,子網內的資源可以僅基於某一個AZ區建立使用,也可以分佈到多個AZ區進行建立使用。跨AZ子網的設計為業務規劃部署、擴充套件提供了最大的靈活性:

  • 使用者應用規劃只需要考慮按照業務型別劃分子網、而不需要結合可用區考慮,可簡化規劃過程;
  • 使用者雲資料庫叢集等PaaS應用在跨AZ部署時只需要選擇一個子網,業務訪問資料庫時只需要配置一組ACL規則,減少使用者配置複雜度、提升使用體驗;
  • 使用者想增加新AZ時,資料庫服務等PaaS應用不需要再增加新子網與業務訪問控制規則,直接在原子網內基於新AZ建立新資料庫服務即可,使用者資料庫業務可擴充套件性好;
  • 使用者自建高可用業務,私網IP可以跨AZ進行漂移,方便使用者自建跨AZ的高可用服務。
    在這裡插入圖片描述

雲資料庫RDS-MySQL

資料庫 RDS 是京東雲基於全球廣受歡迎的 MySQL, Percona, MariaDB, SQL Server 資料庫提供的穩定可靠的雲資料庫服務。相比傳統資料庫,雲資料庫 RDS 易於部署、管理和擴充套件,預設支援主從熱備架構,提供資料備份、故障恢復、監控等全套解決方案,徹底解決資料庫運維的煩惱。同時,京東雲資料庫 RDS 通過使用網路隔離、使用白名單限制外網訪問等方式,為資料庫服務提供了高階別的安全性需求。

在這裡插入圖片描述

雲資料庫連線測試

1、遠端登入雲主機,安裝MySQL客戶端工具;

[root@node11 ~]# yum install mysql

2、登入雲資料庫控制檯,複製雲資料庫例項域名;

在這裡插入圖片描述

3、在雲主機客戶端工具上使用命令連線資料庫;

[root@node11 ~]# mysql -uwordpress -p -hjddb-cn-north-1-xxxxxxxxx.jcloud.com(資料庫域名)

在這裡插入圖片描述

應用連線資料庫

以PHP應用為例,編輯配置檔案wp-config.php,新增資料庫連線配置;

在這裡插入圖片描述

雲 緩 存

京東雲資料庫快取Redis,是基於開源Redis協議的Key-Value型別線上快取服務,即支援標準Redis協議。通過“記憶體+硬碟”的儲存方式在提供高速資料讀寫能力的同時能夠滿足資料的持久化。目前我們已經支援主從版、叢集版的多種規格供使用者選擇,可滿足多種業務場景對可用性、可靠性和效能的要求。支援雙機熱備,提供自動容災切換、例項監控等服務,以降低業務風險,確保業務的連續性,使用者可專注於自身產品的業務即可。

雲快取連線測試

以PHP應用為例,編輯配置檔案wp-config.php,新增雲快取連線配置;

1、登入雲主機安裝redis;

[root@node11 ~]# yum install redis 2、使用redis-cli工具連線 redis-cli -h [host] -p [port] -a [token]。

[root@node11 ~]# redis-cli-h jredis-hb1-prod-redis-wsq2gq6qx1.jmiss.jcloud.com -p 6379 -a redis-wsq2gq6qx1:Jdyun2018

在這裡插入圖片描述

應用配置連線雲快取

1、以PHP應用為例,編輯配置檔案wp-config.php,新增雲快取連線配置;

在這裡插入圖片描述
2、訪問網站測試,瀏覽器中通過訪問雲主機的公網IP進行測試,通過雲快取控制檯監控皮膚檢視雲快取使用情況;
在這裡插入圖片描述

負載均衡建立與配置

應用負載均衡可將大併發流量分發到多臺後端例項,調整資源利用情況,消除由於單臺裝置故障對系統的影響,提高系統可用性、擴充套件系統服務能力。

京東雲應用負載均衡提供多重機制保障服務的高可用:

a. 應用負載均衡的高可用:

  • 多可用區部署:根據業務需求,對支援多可用區的地域可選擇將應用負載均衡例項部署在多個可用區下,一旦可用區機房故障或可用區下資源故障,可將流量自動分發至其他可用區,實現可用區級高可用;

  • 資源冗餘機制:應用負載均衡採用叢集部署,提供雙活模式(單可用區下至少提供2個資源例項),如一個負載均衡服務故障,可將流量自動轉發至另一個負載均衡服務,業務側無感知。

b. 後端伺服器的高可用:

  • 應用負載均衡可繫結高可用組,根據業務流量和裝置負載情況動態調整伺服器數量,實現資源的合理分配,保證業務正常執行。
    在這裡插入圖片描述

1 配置負載均衡

新增建立監聽策略 A. 通過負載均衡-詳情-監聽器進入監聽器管理頁; B. 點選新建監聽器,開啟監聽器設定頁; C. 監聽器設定:

前端監聽配置

  • 選擇前端監聽協議:http、https、tcp、tls;埠:1-65535; 注:同一應用負載均衡下的監聽埠不可重複,監聽器建立後,監聽協議、埠不允許修改;
  • 空閒連線超時:輸入範圍1-86400秒;
  • 在這裡插入圖片描述

後端轉發配置 如前端設定HTTP/HTTPS協議監聽,系統預設開啟客戶端真實IP獲取,可選擇是否開啟cookie會話保持(植入方式)並設定超時時間;

在這裡插入圖片描述

  • 預設後端服務:新建或選擇一個已有的後端服務,選擇已有後端服務相關引數不可修改;
  • 後端服務名稱:定義後端服務名稱,隨監聽器同步建立的後端服務可在後端服務列表檢視;
  • 後端協議:預設顯示,如監聽協議為http、https則後端協議為http,如監聽協議為tcp、tls則後端協議為tcp;
  • 埠:後端業務轉發埠,輸入範圍1-65535,不同後端服務的埠可以重複;
  • 排程演算法:加權輪詢、加權最小連線數、源IP,可根據實際業務需求選擇;
  • 會話保持:預設關閉,後端協議為http時支援植入方式的cookie會話保持;
  • cookie超時時間:輸入範圍0-86400,預設0代表與瀏覽器同生命週期;
  • 獲取真實IP:後端協議為http時,預設開啟不可關閉,此時可通過X-Forwarded-For頭欄位獲取客戶端真實IP;後端協議為tcp時,支援proxy protocol協議方式透傳客戶端IP;

(注:當後端協議為tcp時,如開啟獲取真實IP,需在後端服務端完成proxy protocol的相關配置。)

  • 獲取HTTP頭欄位:用於透傳客戶端http請求的相關資訊。支援通過X-Forwarded-Proto欄位獲取負載均衡監聽協議、通過X-Forwarded-Port欄位獲取負載均衡監聽埠、通過X-Forwarded-LBIP欄位獲取負載均衡VIP地址 、通過X-Forwarded-Host欄位獲取負載均衡監聽目的IP(域名)和埠;
    在這裡插入圖片描述
    在這裡插入圖片描述
    健康檢查設定
  • 選擇健康檢查方式:http、tcp;
  • 設定檢查埠:輸入範圍1-65535,如不填寫預設為後端例項接收負載均衡流量的埠;
  • 響應超時時間(s):輸入範圍2-60秒,此為健康檢查響應的最大超時時間;
  • 健康檢查間隔(s):輸入範圍為5-300秒,此為健康檢查的時間間隔;
  • 不健康閾值:輸入範圍1-5,此為後端例項從成功到失敗的連續健康檢查失敗次數;
  • 健康閾值:輸入範圍1-5,此為後端例項從失敗到成功的連續健康檢查成功次數;
  • 正常態碼:輸入範圍2xx(等價於200-299)、3xx(等價於300-399)、4xx(等價於400-499);
  • 檢查路徑:僅健康檢查方式為HTTP時填寫,必須以“/”開頭、最多支援5級目錄,不得超過100字元。
    在這裡插入圖片描述
    新增伺服器組
  • 選擇伺服器組型別:虛擬伺服器、高可用組,或者可以暫不新增;
  • 虛擬伺服器組:系統會自動篩選出當前可以繫結的伺服器組列表,如沒有可用的伺服器組,可點選“新建虛擬伺服器組”進行建立;
  • 注:可選伺服器組中的後端例項必須與應用負載均衡處於相同地域、私有網路、可用區下。
  • 高可用組:系統會自動篩選出當前可以繫結的高可用組,如沒有可用的高可用組,請前往高可用組頁面進行建立;注:可選高可用組中的後端例項必須與應用負載均衡處於相同地域、私有網路、可用區下。
    在這裡插入圖片描述

2 負載均衡例項繫結公網IP 將彈性公網IP繫結到負載均衡例項上,隨後使用瀏覽器訪問公網IP測試訪問。

在這裡插入圖片描述

安全加固

1 安全組 安全組是一種分散式、有狀態的包過濾功能的虛擬防火牆,可實現對雲主機的網路訪問控制,從而控制一臺或多臺雲主機的訪問流量。 建立雲主機時,可以關聯相應的安全組,將同一地域內具有相同網路安全隔離需求的雲主機加到同一個安全組內。通過配置安全組策略對雲主機的出入流量進行安全過濾。

在這裡插入圖片描述

配置入站規則

1.進入京東雲控制檯,選擇 彈性計算>>雲主機>>安全組 頁面(或者 彈性計算>>容器服務>>安全組,本幫助以雲主機為例),找到需要配置入站規則的安全組,點選“更多”操作中的【修改入站規則】或點選安全組名稱跳轉到其詳情頁面;

在這裡插入圖片描述

2.進入入站規則TAB頁,點選頁面上的【編輯規則】按鈕,進入入站規則編輯頁面;

在這裡插入圖片描述

3.點選頁面下方的【新增新規則】按鈕將為當前安全組新增一條入站規則,選擇入站規則型別,系統將根據所選擇的入站規則型別自動匹配相應協議,依次設定埠(支援單個埠號,如80,也支援埠範圍如:80-8080)、目的IP(支援單個IP或CIDR)後完成一條入口規則的配置;

在這裡插入圖片描述

完成入站規則編輯後,點選頁面上方的【儲存】按鈕後,新修改的安全組規則自動生效。

配置出站規則

1.點選出站規則,會跳轉到出站規則頁面,點選頁面上的【編輯規則】按鈕,進入出站規則編輯頁面;

在這裡插入圖片描述

2.由於沒有在雲主機的作業系統中設定響應客戶端web請求返回的埠,因此這裡放行了全部埠,並儲存配置;

在這裡插入圖片描述

繫結雲主機例項

1.進入京東雲控制檯,選擇 彈性計算>>雲主機,點選部署了wordpress應用的例項,云云主機例項頁面中點選“安全組”;

在這裡插入圖片描述
2.點選“繫結”,勾選剛才建立並配置了規則的安全組例項;

在這裡插入圖片描述

3.移除多餘的安全組;

在這裡插入圖片描述

至此,雲主機的安全組配置完成。將瀏覽器快取清空後,可以訪問負載均衡公網IP進行測試。

2 RDS白名單 白名單控制哪些 IP 地址能夠訪問 RDS 例項。 預設情況下,例項所在的 VPC 段會在白名單列表中,即在該VPC中的所有IP都可以訪問。如果使用者需要開啟外網訪問,必須需要訪問的外網的IP地址加入到白名單中。建議只新增真正需要從外網訪問的IP地址,從而保證例項的資料安全性。修改後的白名單的會立即生效,不需要重啟例項。

操作步驟:

1.登入 雲資料庫 RDS 控制檯。

2.選擇需要設定白名單的目標例項,點選目標例項,進入例項詳情頁。

3.選擇 安全管理 標籤,點選 名單設定 標籤進入 白名單 的詳情頁,點選 編輯 按鈕,彈出框引數說明如下:

編輯方式支援兩種,分別為:文字編輯 和 從雲主機選擇

文字編輯方式需要您手動輸入 IP 地址或者 IP 段,多個 IP 地址或者 IP 段通過逗號或者回車分隔。如果填寫了 0.0.0.0/0,表示允許所有地址訪問。

從雲主機選擇方式會顯示所有和雲資料庫SQL Server 例項處於同一VPC的雲主機例項,您只要勾選需要訪問雲例項的雲主機,它的內網 IP 地址會自動新增到白名單規則中。

在這裡插入圖片描述

配置完成後,清空瀏覽器快取,訪問負載均衡公網IP測試。

可檢視京東雲相關產品配屬: www.jdcloud.com/cn?utm_sour…

·END·

相關文章