日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

haproxy实现discuz论坛的动静分离和负载均衡

發布時間:2025/3/18 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 haproxy实现discuz论坛的动静分离和负载均衡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、實驗拓撲圖

二、實驗步驟

A、實驗環境準備

1、在node2、node3、node4上安裝httpd

[root@localhost?~]#?yum?-y?install?httpd

2、在node3和node4上安裝php 、php-mysql

[root@localhost?~]#?yum?-y?install?php?php-mysql

3、在172.18.250.193上安裝mariadb,并進行配置

[root@byq?~]#yum??-y?install?mariadb

啟動數據庫

[root@byq?~]#systemctl?start?mariadb

檢查端口

[root@byq?~]#ss?-tnl State??????Recv-Q?Send-Q?Local?Address:Port???????????????Peer?Address:Port?????????????? LISTEN?????0??????50????????????????*:3306??????????????????????????*:*

配置數據庫相關內容

[root@byq?~]#mysql Welcome?to?the?MariaDB?monitor.??Commands?end?with?;?or?\g. Your?MariaDB?connection?id?is?2 Server?version:?5.5.52-MariaDB?MariaDB?ServerCopyright?(c)?2000,?2016,?Oracle,?MariaDB?Corporation?Ab?and?others.Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.MariaDB?[(none)]>?create?database?dz; MariaDB?[(none)]>?grant?all?privileges?on?dz.*?to?'dzadmin'@'%'?identified?by?'123456'; MariaDB?[(none)]>?grant?all?privileges?on?dz.*?to?'dzadmin'@'localhost'?identified?by?'123456'; MariaDB?[(none)]>?flush?privileges; MariaDB?[(none)]>?show?databases; +--------------------+ |?Database???????????| +--------------------+ |?information_schema?| |?dz?????????????????| |?mysql??????????????| |?performance_schema?| |?test???????????????| +--------------------+ 5?rows?in?set?(0.00?sec) MariaDB?[(none)]>?exit Bye

遠程登陸測試創建的數據庫用戶是否正常連接

[root@BYQ?~]#mysql?-udzadmin?-p123456?-h172.18.250.193 Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g. Your?MySQL?connection?id?is?3 Server?version:?5.5.52-MariaDB?MariaDB?ServerCopyright?(c)?2000,?2013,?Oracle?and/or?its?affiliates.?All?rights?reserved.Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its affiliates.?Other?names?may?be?trademarks?of?their?respective owners.Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.mysql>

4、編輯node2、node3、node4中httpd的配置文件httpd.conf

[root@localhost?~]#?vim?/etc/httpd/conf/httpd.conf

修改添加如下內容

ServerName?node2.byq.com:80 DocumentRoot?"/var/www/html/upload"ServerName?node3.byq.com:80 DocumentRoot?"/var/www/html/upload"ServerName?node4.byq.com:80 DocumentRoot?"/var/www/html/upload"


這里配置完畢是無法啟動httpd服務的,因為upload目錄還未生成,等下面配置完畢再啟動httpd服務


5、在node3上下載 Discuz安裝文件

[root@BYQ?~]#wget?http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip

解壓并安裝

[root@BYQ?~]#mkdir?Discuz [root@BYQ?~]#unzip?-d?/root/Discuz?Discuz_X3.3_SC_UTF8.zip

將解壓后的所有文件拷貝至/var/www/html

[root@BYQ?~]#cp?-a?/root/Discuz/*?/var/www/html/

給所有目錄及文件配置權限

[root@BYQ?~]#chmod?-R?777?/var/www/html/upload/*

安裝 Discuz

這里就做解釋了,安裝步驟就是確認,下一步即可


將配置好的文件分別scp到node3和node4的對應目錄下

[root@BYQ?~]#scp?-r?/var/www/html/*?172.18.249.57:/var/www/html/ [root@BYQ?~]#scp?-r?/var/www/html/*?172.18.10.11:/var/www/html/


6、將node3和node4的靜態文件存放目錄掛載到node2下

#/var/www/html/upload中需要掛載的目錄如下 /data???-----數據緩存及附件 /static?-----靜態文件


將node2設置為NFS服務器

[root@localhost?~]#?yum?install?nfs-utils?rpcbind [root@localhost?~]#?service?rpcbind?start

編輯共享文件配置

[root@localhost?~]#?vim?/etc/exports #NFS輸出目錄為data,可以訪問這個目錄的主機為node3和node4,權限為讀寫,訪問uid為0(root),允許超過1024的端口號>連接 /var/www/html/upload/data/??172.18.10.10(rw,all_squash,anonuid=0,insecure) /var/www/html/upload/data/??172.18.10.11(rw,all_squash,anonuid=0,insecure) #NFS輸出目錄為data,可以訪問這個目錄的主機為node3和node?4,權限為讀寫,訪問uid為0(root),允許超過1024的端口號>連接 /var/www/html/upload/static/??172.18.10.10(rw,all_squash,anonuid=0,insecure) /var/www/html/upload/static/??172.18.10.11(rw,all_squash,anonuid=0,insecure)

啟動nfs服務

[root@localhost ~]# service nfs start

查看共享文件目錄

[root@localhost ~]# showmount -e

Export list for localhost.localdomain:

/var/www/html/upload/static 172.18.10.11,172.18.10.10

/var/www/html/upload/data ? 172.18.10.11,172.18.10.10

啟動httpd服務

[root@localhost ~]# service httpd ?start


7、在node3上掛載共享存儲目錄

[root@BYQ?~]#?yum?install?nfs-utils?rpcbind [root@BYQ?~]#?service?rpcbind?start [root@BYQ?~]#?service?nfs?start [root@BYQ?~]#mount?172.18.249.57:/var/www/html/upload/data/?/var/www/html/upload/data/ [root@BYQ?~]#mount?172.18.249.57:/var/www/html/upload/static/?/var/www/html/upload/static/ [root@BYQ?~]#showmount?-e?172.18.249.57 Export?list?for?172.18.249.57: /var/www/html/upload/static?172.18.10.11,172.18.10.10 /var/www/html/upload/data???172.18.10.11,172.18.10.10


8、在node4上掛載共享存儲目錄

[root@localhost?~]#?yum?install?nfs-utils?rpcbind [root@localhost?~]#?service?rpcbind?start [root@localhost?~]#?service?nfs?start [root@localhost?~]#?yum?install?nfs-utils?rpcbind [root@localhost?~]#?service?rpcbind?start [root@localhost?~]#?service?nfs?start [root@localhost?~]#mount?172.18.249.57:/var/www/html/upload/data/?/var/www/html/upload/data/ [root@localhost?~]#mount?172.18.249.57:/var/www/html/upload/static/?/var/www/html/upload/static/ [root@localhost?~]#showmount?-e?172.18.249.57 Export?list?for?172.18.249.57: /var/www/html/upload/static?172.18.10.11,172.18.10.10 /var/www/html/upload/data???172.18.10.11,172.18.10.10


9、在node上安裝haproxy

開啟日志功能

[root@localhost?~]#?vim?/etc/rsyslog.conf #打開或增加一下幾行,讓udp514端口處于監聽狀態,并將日志紀錄到指定文件中 $ModLoad?imudp $UDPServerRun?514 local2.*????????????????????????????????????????????????/var/log/haproxy.log [root@localhost?~]#?systemctl?restart?rsyslog.service [root@localhost?~]#?ss?-unl?|?grep?514 UNCONN?????0??????0????????????*:514??????????????????????*:*?????????????????? UNCONN?????0??????0???????????:::514?????????????????????:::*


配置haproxy

[root@localhost?~]#yum?install?haproxy [root@localhost?~]#cp?/etc/haproxy/haproxy.cfg?/etc/haproxy/haproxy.cfg.bak? [root@localhost?~]#vim?/etc/haproxy/haproxy.cfg global????#全局配置log?????????127.0.0.1?local2????#日志紀錄位置chroot??????/var/lib/haproxy????#haproxy的工作目錄pidfile?????/var/run/haproxy.pid????#pid文件位置maxconn?????4000????????????????????#最大連接數user????????haproxy????????????????#運行時使用的用戶身份group???????haproxy????????????????#運行時使用的組身份daemon????????????????????????????#啟動為守護進程,不加此處運行在前臺stats?socket?/var/lib/haproxy/stats????#本地訪問stats統計信息時以套接字方式通信defaults????#默認配置mode????????????????????http????#已http模式運行log?????????????????????global????#默認日志為全局配置中日志的設置option??????????????????httplogoption??????????????????dontlognulloption?http-server-closeoption?forwardfor???????except?127.0.0.0/8????#除本機外所有發往服務器的請求首部中加入“X-Forwarded-For”首部option??????????????????redispatchretries?????????????????3timeout?http-request????10stimeout?queue???????????1mtimeout?connect?????????10stimeout?client??????????1mtimeout?server??????????1mtimeout?http-keep-alive?10stimeout?check???????????10smaxconn?????????????????3000????#前端最大并發連接數listen?static????#設置統計報告頁面bind?*:9000????#監聽在本機9000端口stats?enable????#打開stats?hide-version????#隱藏haproxy版本stats?uri?/haadmin?admin??#統計頁面路徑stats?realm?"HAProxy\?Static"????#打開統計頁面的認證功能stats?auth?byq:byq123?????????#進入統計頁面所使用的賬號byq和密碼byq123stats?auth?administrator:administratorstats?admin?if?TRUE????????????#條件滿足時進入管理級別frontend??dz????#前端設置bind?*:80????#監聽在80端口acl?url_static??path_beg??-i??/data?/static?/p_w_picpaths?/javascript?/stylesheets????#url開頭為這些的靜態內容acl?url_static??path_end??-i??.jpg?.gif?.png?.css?.js?.html?.ico????#url結尾帶為這些的靜態內容use_backend?staser??if?url_static????#如果靜態內容符合url_static的條件,就調度到staser中的服務器default_backend?????????????dyser????#其他默認調度到dyser中的服務器backend?dyser????#后端動態內容服務器設置cookie?srv?insert?nocachebalance?????roundrobinserver??????node3???????172.18.10.10:80?checkserver??????node4???????172.18.10.11:80?checkbackend?staser????#后端靜態內容服務器設置balance?????roundrobinserver??????node2???????172.18.249.57:80?check[root@localhost?~]#?service?haproxy?start修改node2、node3、node4的http配置文件,讓他們能收到真實訪問的ip[root@localhost?~]#?vim?/etc/httpd/conf/httpd.conf #修改一下內容LogFormat?"%{X-Forwarded-For}i?%l?%u?%t?\"%r\"?%>s?%b?\"%{Referer}i\"?\"%{User-Agent}i\""?combined [root@localhost?~]#?service?httpd?restart #node3和node4執行同樣的操作


轉載于:https://blog.51cto.com/12876758/1951302

總結

以上是生活随笔為你收集整理的haproxy实现discuz论坛的动静分离和负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。