記一次負載均衡 NFS部落格站點搭建的總結

2021-09-14 05:00:14 字數 3782 閱讀 5665

原本是打算搭建個小部落格站點做實驗,突然想起之前遇到的一次負載均衡失效的經歷,便打算做一次實驗重現當初的情況並記錄下來,防止日後再遇到類似的情況懵逼。

復現流程

架構體系

原環境:前端依賴nginx做負載均衡的排程器,web端是httpd+php-fpm分離,分別處理動態和靜態頁面,後端mariadb資料庫做資料儲存,nfs伺服器提供站點檔案作出共享,防止,web端出現站點檔案不一致的情況。

模擬環境:nginx做負載均衡器,httpd和php-fpm共存在同一主機,nfs和mariadb分處2臺主機,整個模擬一共使用5臺主機。

軟體環境與架構圖

前提:所有節點主機全部關閉selinux,清空防火牆規則。

系統 httpd php nginx maiadb

架構圖記一次負載均衡+nfs部落格站點搭建的總結

配置各個節點

配置nginx節點

1.安裝nginx

yum install nginx -y

2.編輯nginx配置檔案

vim /etc/nginx/conf.d/upstream.conf

#寫入下面內容

#定義負載**的後端ip

upstream www.douma.com

#配置主配置資訊

server

}3.啟動nginx

systemctl start nginx

記一次負載均衡+nfs部落格站點搭建的總結

配置mariadb

1.安裝mariadb

#這裡直接yum,新版的mariadb要到官網去配置新版的mariadb更新源

yum install mariadb -y

systemctl start mairadb

2.授權賬號

mariadb [(none)]> grant all on wp.* to wp_admin@『192.168.99.%』 identified by 『admin』;

mariadb [(none)]> flush privileges;

3.建立wordpress資料庫

mariadb [(none)]> create database wp;

記一次負載均衡+nfs部落格站點搭建的總結

配置nfs

1.安裝nfs管理工具,並且啟動

yum install nfs-utils -y

systemctl start nfs-server

2.編輯配置檔案

vim /etc/exports

#寫入想要共享的目錄和允許掛載的機器和讀寫許可權

/web/wordpress 192.168.99.0/24(rw)

3.建立目錄並且放入wordpress站點檔案

mkdir /web

cd /web

wget

tar -xvf wordpress-4.9.4-zh_cn.tar.gz

4.設定acl許可權,要給父附錄許可權,否則在wordpress在上傳檔案會失敗

#由於httpd是yum安裝的,所以uid號相同,所以設定一次就好

setfacl -r -m u:48:rwx /web

5.將nfs目錄分享出去

cd wordpress

mv wp-config.sample.php wp-config.php

vim wp-config.php

記一次負載均衡+nfs部落格站點搭建的總結

配置web伺服器

2臺web都按照如下配置

1.安裝httpd和php-fmp

#由於未做分離所以可以直接啟動,無需修改,如果分離,要注意修改配置檔案允許遠端訪問和監聽全部ip

systemctl start php-fpm

2.配置httpd

#自定義配置檔案名字,但是目錄和結尾要固定

#寫入如下字段

#將php也作為預設頁

directoryindex index.php

#關閉**請求

proxyrequests off

#設定允許**的請求,這裡未做分離所以直接**到httpd目錄就好

proxypassmatch ^/(.*.php)$ fcgi:

記一次負載均衡+nfs部落格站點搭建的總結

3.安裝nfs管理工具

yum install nfs-utils -y

#檢視nfs伺服器共享的資料夾

showmount -e 192.168.99.135

記一次負載均衡+nfs部落格站點搭建的總結

4.掛載目錄

#這裡有2中方法

#法一,編譯fstabl檔案

vim /etc/fstab

192.168.99.135:/web/wordpress /var/www/html/ nfs defaults 0 0

mount -a

記一次負載均衡+nfs部落格站點搭建的總結

#法二,直接命令掛載

mount 192.168.99.135:/web/wordpress /var/www/html/

5.啟動httpd

配置宿主機

由於沒有做dns所以要修改宿主機的hosts檔案才能實現基於網域名稱的訪問

c:\windows\system32\drivers\etc\hosts

#添入如下字段

192.168.99.150 www.douma.com

安裝wordpress

1.宿主機在瀏覽器開啟www.douma.com

填寫好對應資訊

記一次負載均衡+nfs部落格站點搭建的總結

2.安裝wordpress等待完成

記一次負載均衡+nfs部落格站點搭建的總結

3.重新開啟www.douma.com

記一次負載均衡+nfs部落格站點搭建的總結

部署完成。

總結整個部署基本是按照問題解決後的配置來進行安裝的,所以負載均衡可以正常實現。下面將會列出剛開始錯誤的點和配置。

注意點nginx反向**的配置

記一次負載均衡+nfs部落格站點搭建的總結

記一次負載均衡+nfs部落格站點搭建的總結

上面2幅圖分別是正確和錯誤的配置,不過正常來說2個配置都沒問題,但是在這裡並不行;錯誤配置是將請求192.168.99.150的請求**到後端的2臺httpd機器上,但是在這裡同時會將http://backend 也**到後端,而wordpress會在安裝過程中記錄下這個站點名稱,並且之後的請求會直接請求http://backend

wordpress資料庫的記錄

1.下面是wordpress記錄到資料庫的內容

這裡我使用了phpmyadmin這個web端的mysql管理工具

記一次負載均衡+nfs部落格站點搭建的總結

圖中方框內記錄的便是wordpress記錄的站點位址,同時也會是以後請求的位址。

2.下面是使用除錯視窗看到的請求,正常情況下下次請求會重新去請求記錄的站點位址,可以重新通過nginx實現負載均衡。如果請求的站點位址不是網域名稱而是上面nginx錯誤配置或者是某個web節點的位址的話,負載均衡會完全失效。

記一次負載均衡+nfs部落格站點搭建的總結

記一次Nginx負載均衡ip hash會話失效問題

2tomcat nginx ip hash 頁面在載入的時候,提示會話超時,其他頁面都正常。根據現場反饋過來的問題,第一時間問了專案架構,得知是ip hash的策略,第一時間還楞了一下,ip hash怎麼會有會話失效的問題。後來遠端到了現場環境上面,發現提示會話失效的頁面,介面請求返回資料時間比較長...

記一次typcecho部落格搭建

找到安裝包 rz 工具上傳後解壓tar xvf 1.1 17.10.30 release.tar.gz 得到乙個 bulid 檔案 再將build裡面的所有檔案複製到網頁家目錄下cp ri build www html 會提示是否需要overwrote 按 n就好 到現在一切正常 然後發現不能執行p...

記一次github部落格的搭建

記錄一下個人部落格搭建過程中遇到的問題。參考 申請倉庫,轉殖主題檔案,選主題花費了我大量時間。這裡比較簡單吧 edit config.yml for base information posts for articles,keep the name in right style assets ima...