1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > haproxy实现discuz论坛的动静分离和负载均衡

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

时间:2023-07-17 20:17:48

相关推荐

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

一、实验拓扑图

二、实验步骤

A、实验环境准备

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

[root@localhost~]#yum-yinstallhttpd

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

[root@localhost~]#yum-yinstallphpphp-mysql

3、在172.18.250.193上安装mariadb,并进行配置

[root@byq~]#yum-yinstallmariadb

启动数据库

[root@byq~]#systemctlstartmariadb

检查端口

[root@byq~]#ss-tnlStateRecv-QSend-QLocalAddress:PortPeerAddress:PortLISTEN050*:3306*:*

配置数据库相关内容

[root@byq~]#mandsendwith;or\g.YourMariaDBconnectionidis2Serverversion:5.5.52-MariaDBMariaDBServerCopyright(c)2000,,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>createdatabasedz;MariaDB[(none)]>grantallprivilegesondz.*to'dzadmin'@'%'identifiedby'123456';MariaDB[(none)]>grantallprivilegesondz.*to'dzadmin'@'localhost'identifiedby'123456';MariaDB[(none)]>flushprivileges;MariaDB[(none)]>showdatabases;+--------------------+|Database|+--------------------+|information_schema||dz||mysql||performance_schema||test|+--------------------+5rowsinset(0.00sec)MariaDB[(none)]>exitBye

远程登陆测试创建的数据库用户是否正常连接

[root@BYQ~]#mysql-udzadmin-p123456-h172.18.mandsendwith;or\g.YourMySQLconnectionidis3Serverversion:5.5.52-MariaDBMariaDBServerCopyright(c)2000,,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>

4、编辑node2、node3、node4中httpd的配置文件httpd.conf

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

修改添加如下内容

:80DocumentRoot"/var/www/html/upload":80DocumentRoot"/var/www/html/upload":80DocumentRoot"/var/www/html/upload"

这里配置完毕是无法启动httpd服务的,因为upload目录还未生成,等下面配置完毕再启动httpd服务

5、在node3上下载 Discuz安装文件

[root@BYQ~]#wget/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip

解压并安装

[root@BYQ~]#mkdirDiscuz[root@BYQ~]#unzip-d/root/DiscuzDiscuz_X3.3_SC_UTF8.zip

将解压后的所有文件拷贝至/var/www/html

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

给所有目录及文件配置权限

[root@BYQ~]#chmod-R777/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~]#yuminstallnfs-utilsrpcbind[root@localhost~]#servicerpcbindstart

编辑共享文件配置

[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和node4,权限为读写,访问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~]#yuminstallnfs-utilsrpcbind[root@BYQ~]#servicerpcbindstart[root@BYQ~]#servicenfsstart[root@BYQ~]#mount172.18.249.57:/var/www/html/upload/data//var/www/html/upload/data/[root@BYQ~]#mount172.18.249.57:/var/www/html/upload/static//var/www/html/upload/static/[root@BYQ~]#showmount-e172.18.249.57Exportlistfor172.18.249.57:/var/www/html/upload/static172.18.10.11,172.18.10.10/var/www/html/upload/data172.18.10.11,172.18.10.10

8、在node4上挂载共享存储目录

[root@localhost~]#yuminstallnfs-utilsrpcbind[root@localhost~]#servicerpcbindstart[root@localhost~]#servicenfsstart[root@localhost~]#yuminstallnfs-utilsrpcbind[root@localhost~]#servicerpcbindstart[root@localhost~]#servicenfsstart[root@localhost~]#mount172.18.249.57:/var/www/html/upload/data//var/www/html/upload/data/[root@localhost~]#mount172.18.249.57:/var/www/html/upload/static//var/www/html/upload/static/[root@localhost~]#showmount-e172.18.249.57Exportlistfor172.18.249.57:/var/www/html/upload/static172.18.10.11,172.18.10.10/var/www/html/upload/data172.18.10.11,172.18.10.10

9、在node上安装haproxy

开启日志功能

[root@localhost~]#vim/etc/rsyslog.conf#打开或增加一下几行,让udp514端口处于监听状态,并将日志纪录到指定文件中$ModLoadimudp$UDPServerRun514local2.*/var/log/haproxy.log[root@localhost~]#systemctlrestartrsyslog.service[root@localhost~]#ss-unl|grep514UNCONN00*:514*:*UNCONN00:::514:::*

配置haproxy

[root@localhost~]#yuminstallhaproxy[root@localhost~]#cp/etc/haproxy/haproxy.cfg/etc/haproxy/haproxy.cfg.bak[root@localhost~]#vim/etc/haproxy/haproxy.cfgglobal#全局配置log127.0.0.1local2#日志纪录位置chroot/var/lib/haproxy#haproxy的工作目录pidfile/var/run/haproxy.pid#pid文件位置maxconn4000#最大连接数userhaproxy#运行时使用的用户身份grouphaproxy#运行时使用的组身份daemon#启动为守护进程,不加此处运行在前台statssocket/var/lib/haproxy/stats#本地访问stats统计信息时以套接字方式通信defaults#默认配置modehttp#已http模式运行logglobal#默认日志为全局配置中日志的设置optionhttplogoptiondontlognulloptionhttp-server-closeoptionforwardforexcept127.0.0.0/8#除本机外所有发往服务器的请求首部中加入“X-Forwarded-For”首部optionredispatchretries3timeouthttp-request10stimeoutqueue1mtimeoutconnect10stimeoutclient1mtimeoutserver1mtimeouthttp-keep-alive10stimeoutcheck10smaxconn3000#前端最大并发连接数listenstatic#设置统计报告页面bind*:9000#监听在本机9000端口statsenable#打开statshide-version#隐藏haproxy版本statsuri/haadmin?admin#统计页面路径statsrealm"HAProxy\Static"#打开统计页面的认证功能statsauthbyq:byq123#进入统计页面所使用的账号byq和密码byq123statsauthadministrator:administratorstatsadminifTRUE#条件满足时进入管理级别frontenddz#前端设置bind*:80#监听在80端口aclurl_staticpath_beg-i/data/static/p_w_picpaths/javascript/stylesheets#url开头为这些的静态内容aclurl_staticpath_end-i.jpg.gif.png.css.js.html.ico#url结尾带为这些的静态内容use_backendstaserifurl_static#如果静态内容符合url_static的条件,就调度到staser中的服务器default_backenddyser#其他默认调度到dyser中的服务器backenddyser#后端动态内容服务器设置cookiesrvinsertnocachebalanceroundrobinservernode3172.18.10.10:80checkservernode4172.18.10.11:80checkbackendstaser#后端静态内容服务器设置balanceroundrobinservernode2172.18.249.57:80check[root@localhost~]#servicehaproxystart修改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~]#servicehttpdrestart#node3和node4执行同样的操作

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。