discuz修改用户uid_haproxy实现discuz论坛的动静分离和负载均衡
一、在cs2、cs3、cs4上安装httpd
[root@cs2 ~]# yum install httpd
[root@cs3 ~]# yum install httpd
[root@cs4 ~]# yum install httpd
二、在cs3、cs4上安装php和php-mysql
[root@cs3 ~]# yum install php[root@cs3 ~]# yum install php-mysql
[root@cs4 ~]# yum install php[root@cs4 ~]# yum install php-mysql
三、在cs5上安装mysql
[root@cs5 ~]# yum install mariadb-server
四、在cs5上给dz论坛创建数据库
[root@cs5 ~]# systemctl start mariadb[root@cs5 ~]# mysql#创建一个discuz用的数据库,库名叫dzMariaDB [(none)]> create database dz;#创建并授权账号dzadmin密码123321给dz库,授权范围为全网MariaDB [(none)]> grant all privileges on dz.* to dzadmin@'%' identified by '123321';#授权账号dzadmin密码123321给dz库,授权范围为本地MariaDB [(none)]> grant all privileges on dz.* to dzadmin@localhost identified by '123321';#刷新权限MariaDB [(none)]> flush privileges;
五、配置cs2、cs3、cs4的httpd
[root@cs2 ~]# vim /etc/httpd/conf/httpd.confServerName cs2.xinfeng.com:80 #修改此处DocumentRoot "/var/www/html/upload" #因为次文件还不存在,所以会报错,等装了dz之后再执行之后的就OK了[root@cs2 ~]# httpd -t[root@cs2 ~]# systemctl start httpd
[root@cs3 ~]# vim /etc/httpd/conf/httpd.confServerName cs3.xinfeng.com:80 #修改此处DocumentRoot "/var/www/html/upload" [root@cs3 ~]# httpd -t[root@cs3 ~]# systemctl start httpd
[root@cs4 ~]# vim /etc/httpd/conf/httpd.confServerName cs4.xinfeng.com:80 #修改此处DocumentRoot "/var/www/html/upload"[root@cs4 ~]# httpd -t[root@cs4 ~]# systemctl start httpd
六、在cs3安装discuz
[root@cs3 ~]# wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip[root@cs3 ~]# mkdir Discuz[root@cs3 ~]# unzip -d /root/Discuz Discuz_X3.2_SC_UTF8.zip[root@cs3 ~]# cp -a /root/Discuz/* /var/www/html/[root@cs3 ~]# chmod -R 777 /var/www/html/upload/*
打开cs3.xinfeng.com安装
论坛管理员账号admin,密码123
七、将cs3上安装完成后的网站根目录复制到cs2和cs4上
#复制cs3下的/var/www/html所有文件到cs2/var/www/html/下[root@cs3 ~]# scp -r /var/www/html/* 192.168.1.114:/var/www/html/
#复制cs3下的/var/www/html所有文件到cs4/var/www/html/下[root@cs3 ~]# scp -r /var/www/html/* 192.168.1.115:/var/www/html/
八、将cs3和cs4的静态文件存放目录挂载到cs2下
#/var/www/html/upload中需要挂载的目录如下data ┄┄┄数据缓存及附件static ┄┄┄静态文件
设置cs2为NFS服务器
[root@cs2 ~]# yum install nfs-utils[root@cs2 ~]# yum install rpcbind[root@cs2 ~]# service rpcbind start[root@cs2 ~]# vim /etc/exports#NFS输出目录为data,可以访问这个目录的主机为cs3和cs4,权限为读写,访问uid为0(root),允许超过1024的端口号连接/var/www/html/upload/data/ 192.168.1.113(rw,all_squash,anonuid=0,insecure)/var/www/html/upload/data/ 192.168.1.115(rw,all_squash,anonuid=0,insecure)#NFS输出目录为static,可以访问这个目录的主机为cs3和cs4,权限为读写,访问uid为0(root),允许超过1024的端口号连接/var/www/html/upload/static/ 192.168.1.113(rw,all_squash,anonuid=0,insecure)/var/www/html/upload/static/ 192.168.1.115(rw,all_squash,anonuid=0,insecure)[root@cs2 ~]# service nfs start#查看共享状态[root@cs2 ~]# showmount -eExport list for cs2.xinfeng.com:/var/www/html/upload/static 192.168.1.115,192.168.1.113/var/www/html/upload/data 192.168.1.115,192.168.1.113
在cs3上挂载
[root@cs3 ~]# yum install nfs-utils[root@cs3 ~]# yum install rpcbind[root@cs3 ~]# service rpcbind start[root@cs3 ~]# service nfs start[root@cs3 ~]# mount 192.168.1.114:/var/www/html/upload/data/ /var/www/html/upload/data/[root@cs3 ~]# mount 192.168.1.114:/var/www/html/upload/static/ /var/www/html/upload/static/[root@cs3 ~]# showmount -e 192.168.1.114Export list for 192.168.1.114:/var/www/html/upload/static 192.168.1.115,192.168.1.113/var/www/html/upload/data 192.168.1.115,192.168.1.113
在cs4上挂载
[root@cs4 ~]# yum install nfs-utils[root@cs4 ~]# yum install rpcbind[root@cs4 ~]# service rpcbind start[root@cs4 ~]# service nfs start[root@cs4 ~]# mount 192.168.1.114:/var/www/html/upload/data/ /var/www/html/upload/data/[root@cs4 ~]# mount 192.168.1.114:/var/www/html/upload/static/ /var/www/html/upload/static/[root@cs4 ~]# showmount -e 192.168.1.114Export list for 192.168.1.114:/var/www/html/upload/static 192.168.1.115,192.168.1.113/var/www/html/upload/data 192.168.1.115,192.168.1.113
九、在cs1上安装配置haproxy
开起日志功能
[root@cs1 ~]# vim /etc/rsyslog.conf#打开或增加一下几行,让udp514端口处于监听状态,并将日志纪录到指定文件中$ModLoad imudp$UDPServerRun 514local2.* /var/log/haproxy.log[root@cs1 ~]# systemctl restart rsyslog.service[root@cs1 ~]# ss -unl | grep 514UNCONN 0 0 *:514 *:* UNCONN 0 0 :::514 :::*
配置haproxy
[root@cs1 ~]# yum install haproxy[root@cs1 ~]# 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 httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 #除本机外所有发往服务器的请求首部中加入“X-Forwarded-For”首部 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #前端最大并发连接数
listen static #设置统计报告页面 bind *:9000 #监听在本机9000端口 stats enable #打开 stats hide-version #隐藏haproxy版本 stats uri /hadzadmin?stats #统计页面路径 stats realm "HAProxy/ Static" #打开统计页面的认证功能 stats auth hasts:123 #进入统计页面所使用的账号hasts和密码123 stats admin if TRUE #条件满足时进入管理级别
frontend dz #前端设置 bind *:80 #监听在80端口 acl url_static path_beg -i /data /static /images /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 nocache #在cookie中插入srv字串防止登录信息丢失 balance roundrobin #调度算法为轮询 server cs3 192.168.1.113:80 check server cs4 192.168.1.115:80 check
backend staser #后端静态内容服务器设置 balance roundrobin server cs1 192.168.1.114:80 check
[root@cs1 ~]# systemctl start haproxy
修改cs2、cs3、cs4的http配置文件,让他们能收到真实访问的ip
[root@cs2 ~]# vim /etc/httpd/conf/httpd.conf#修改一下内容 LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined[root@cs2 ~]# service httpd reload#cs3和cs4执行同样的操作
十、测试
分别看下cs2,cs3,cs4最近的访问日志
[root@cs2 ~]# tail -1 /var/log/httpd/access_log 192.168.1.110 - - [05/Jun/2016:16:36:12 +0800] "GET /data/attachment/forum/201606/05/161843j4au463pthh432zf.png HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0"[root@cs3 uc_server]# tail -1 /var/log/httpd/access_log 192.168.1.110 - - [05/Jun/2016:16:33:07 +0800] "GET /misc.php?mod=patch&action=ipnotice&_r=0.40765136777967004&inajax=1&ajaxtarget=ip_notice HTTP/1.1" 200 65 "http://cs1.xinfeng.com/forum.php?mod=viewthread&tid=1&extra=page%3D1" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36[root@cs4 data]# tail -1 /var/log/httpd/access_log 192.168.1.110 - - [05/Jun/2016:16:33:07 +0800] "GET /misc.php?mod=patch&action=pluginnotice&inajax=1&ajaxtarget=plugin_notice HTTP/1.1" 200 65 "http://cs1.xinfeng.com/forum.php?mod=viewthread&tid=1&extra=page%3D1" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
discuz修改用户uid_haproxy实现discuz论坛的动静分离和负载均衡相关推荐
- haproxy实现discuz论坛的动静分离和负载均衡
一.实验拓扑图 二.实验步骤 A.实验环境准备 1.在node2.node3.node4上安装httpd [root@localhost ~]# yum -y install httpd 2.在nod ...
- discuz修改用户uid_discuz教程:修改用户组颜色同时并不修改用户名字的颜色
看有些用户比较喜欢做站点用户组颜色或者用户名名字的颜色.例如: 先设置用户组的颜色.这里就拿管理组为例子 进入后台–用户–管理组–头衔颜色. 选择自己喜欢的颜色,点击确定. 出现的效果是: 有的用户觉 ...
- discuz修改用户uid_你知道Linux中的UID和GID的含义吗
你知道Linux中的UID和GID的含义吗 是不是大家看到UID(user id)和GID(group id),都会立马说不就是用户和用户组ID. 但是. 当我们登陆Linux系统时,输入自己的用户名 ...
- 部署LAMP动静分离以及部署Discuz论坛
通过LAMP平台部署及应用 已经可以部署出LAMP平台,来面对客户端的请求,但是由于这些组件都是在一台服务器上进行安装,如果出现问题,将导致LAMP平台的瘫痪.在实际环境中,不可能将LAMP平台都部署 ...
- 直接导入用户信息到discuz ucenter.
上一篇帖子: 直接导入帖子到Discuz 论坛数据库. 结束时说要写一篇导入用户的帖子, 一直没时间, 但是咱不能做太监,不是? 所以今天赶快补上. 在做discuz整合或者迁移是, 很多人可能遇到相 ...
- Discuz!NT负载均衡方案
在前面的几篇文章中,主要谈到了在Discuz!NT中的跨站缓存数据,数据库负载均衡.但如果要实现将产品分布式布置到若干机器,组成集群来共同支撑起整个业务的话,还是有一定问题的(后面会有所介绍).下面先 ...
- keepalived_nginx实现discuz负载均衡和高可用
前言: 上回讲到,<lvs-dr模型负载均衡高可用Discuz>,但是由于lvs过于重量级,小公司使用有点不合时宜,本回咱们使用nginx实现此功能.望各位博友笑纳. 此次试验使用ngin ...
- discuz gbk php在utf8,Discuz!X2 utf8升级为Discuz!X2.5 GBK 完美解决方案
因为原论坛安装的是Discuz!X2 UTF8比较占用空间,而且官方正好有发布了Discuz!X2.5正式版,因此就想转成直接升级为Discuz!X2.5 GBK版. 经过多次摸索并参考相关转换教程, ...
- discuz 版块导航function_forumlist.php,Discuz! X2扩建左侧版块导航 社区层次一目了然...
一般情况下,当社区具有大量栏目和版块的时候,用户往往很容易迷失其中,不清楚自己所在的版块位置,同时也很难找到"目的"版块,容易造成不良的用户体验.Discuz! X2针对此问题在& ...
最新文章
- Python爬取B站5000条视频,揭秘为何千万人为它流泪
- *58.作业与进程的关系
- 软件设计师考试上午真题 考前速记
- linux mail命令查看邮件/mail控制台
- Netty实现原理分析
- Sphinx 文档例子
- CodeVs 1017 乘积最大(DP)
- 华为2014 第三题地铁换乘 java实现
- 把swf反编译成fla的几种方法
- CruiseControl入门简介
- Greenplum删除segment节点
- swift UI 学习 (一)
- 快速上手 Spring Boot 项目开发
- PS 2019 Mac版 自学入门系列(八)—— 替换背景
- Arduino--4*4矩阵键盘
- html5页面嵌入视频播放,使用HTML5在网页中嵌入音频和视频播放的基本方法
- 【EasyRL学习笔记】第七章 深度Q网络进阶技巧(Double-DQN、Dueling-DQN、Noisy-DQN、Distributional-DQN、Rainbow-DQN)
- C语言 给定一个字符串,统计‘a’的个数
- 计算机显卡和cpu的关系,cpu和显卡的关系
- 677_AUTOSAR_TR_Methodology_文档阅读4