web访问负载均衡的实现(通俗易懂) - 猫学历险记
主要的目的是实现负载均衡,所以采用rpm包安装,DNS也是提供最基本的正向解析。
环境介绍:三台虚拟机,数据库服务器以及DNS服务器放在172.16.16.3台虚拟机上,在172.16.16.33这台虚拟机上创建论坛,172.16.16.1这台虚拟机用来挂载第二台虚拟机上的论坛。
环境图示:
注意:确认selinux的状态时关闭的。
在虚拟机172.16.16.3上操作:
安装DNS和MYSQL服务器
- yum install bind97 bind97-libs bind97-utils.i386
- yum install mysql mysql-devel mysql-server
启动mysql服务
- service mysqld start
在mysql上创建一个存放论坛用户信息的数据库mydb,并且提供一个可以访问这个数据库的一个用户bbsuser密码是redhat.
- [root@ns1 ~]# mysql
- mysql> grant all mydb.* to \’bbsuser\’@\’172.16.%.%\’ identified by \’redhat\’;
- mysql>flush privileges;
建立DNS域,提供相应主配置文件/etc/named.conf以及对应的区域文件/var/named/magedu.com.zone
- vim /etc/named.conf
- options {
- directory “/var/named”;
- };
- zone “magedu.com.” IN {
- type master;
- file “/var/named/magedu.com.zone”;
- };
提供正向解析文件,给open.magedu.com这个主机名提供两条A记录
- vim /var/named/magedu.com.zone
- $TTL 86400
- $ORIGIN magedu.com.
- @ IN SOA open.magedu.com. admin.magedu.com. (
- 2012110601
- 2H
- 10M
- 11D
- 1D )
- IN NS open
- open IN A 172.16.16.33
- open IN A 172.16.16.1
启动服务DNS服务:
- service named start
在虚拟机172.16.16.33上操作:
在172.16.16.33上先对172.16.16.3提供的DNS服务器测试下。
安装LAMP有的包并没有写进去,yum会自动帮忙解决依赖关系,将那些rpm包安上。
- yum install httpd
- yum install mysql
- yum install php53 php53-common php53-cli php53-mysql
解压论坛压缩包Discuz到目录/www/Discuz,此时会生成三个目录 readme upload utilities。
- mkdir /www/Discuz
- cd /www/Discuz
- unzip Discuz_7.2_FULL_SC_GBK.zip
- cp upload/* .
在Httpd的主配置文件当中定义主机位置(即论坛):
- vim /etc/httpd/conf/httpd.conf
- DocumentRoot “/www/Discuz”
此时就可以在浏览器中显示安装向导了,在首次浏览要输入install.否则不会弹出安装向导页面。
在安装向导中会给出提示有些文件时没有读写权限。
此时我们根据提示要给定rw权限(如果是目录文件一定要给执行权限),这里的u所指的用户在httpd的主配置文件/etc/httpd/conf/httpd.conf中的User 定义,我们这里指定的是apache.
- cd /www/Discuz
- setfacl -m u:apache:rw- config.inc.php
- setfacl -m u:apache:rwx attachments/
- setfacl -m u:apache:rwx forumdata/cache/
- setfacl -m u:apache:rwx forumdata/templates/
- setfacl -m u:apache:rwx forumdata/threadcaches/
- setfacl -m u:apache:rwx forumdata/logs/
- setfacl -m u:apache:rwx uc_client/
- setfacl -m u:apache:rwx uc_client/data/
- setfacl -m u:apache:rwx uc_client/data/cache/
编辑php.ini里面的一个选项要改成on在装论坛Discuz的过程中这一步会给出提醒,但是有的此类
应用是不会提示我们去操作这一部的——支持短标签。
- vim/etc/php.ini
- short_open_tag=on
为论坛指定存放用户的数据库:
此时在172.16.16.33的论坛就可以访问了,在172.16.16.33上的操作已经完成
想要通过172.16.16.1这个IP可以访问172.16.16.33这台主机上的论坛,必须在172.16.16.16.33的/etc/exprots文件中定义允许被挂载。
- vim /etc/exports
- /www/Discuz 172.16.0.0/16(rw,root_squash)
在命令行输入一次输入exportfs命令,-r:重新导出所有目录 -v:表示显示详细过程
- exportfs -r
- exportfs -v
在虚拟机172.16.16.1上操作:
安装MYSQL和PHP,在安装PHP的时候yum会自动解决它的依赖关系。
- yum install mysql
- yum install php53 php53-common php53-cli php53-mysql
在Httpd的主配置文件当中定义主机位置(将要挂载论坛的位置):
- vim /etc/httpd/conf/httpd.conf
- DocumentRoot “/www/Discuz”
同样还得让/etc/php.ini支持短标签
- vim/etc/php.ini
- short_open_tag=on
将论坛挂到172.16.16.1的目录/www/Discuz下(其实真正的就是这一部实现了论坛的共享)
- mkdir /www/Discuz
- mount -t nfs 172.16.16.33:/www/Discuz /www/Discuz
- vim /etc/resolv.conf
在172.16.16.1和172.16.16.3上均启动nfs服务,并确认启动它的锁服务,这个用来防止资源争用的。
- service nfs start
- service nfslock start
此时就可以通过172.16.16.1同时也能访问到论坛了。
接下来要实现的就是通过域名open.magedu.com这个主机名称访问我们的论坛。亲注意啊,这里的这个主机名由DNS文件决定,与我们的各台主机上的主机名是没有任何关系的。
将172.16.16.1这台主机和172.16.16.33这台主机的DNS都指向我们的172.16.16.3上DNS服务器
- vim /etc/resolv.conf
- ServerName:172.16.16.3
我们要用windowx中的浏览器所以我们还要将它的DNS服务器指向我们自己的DNS服务器。
此时在外部的浏览器当中就可以访问了
当我们通过open.magedu.com这个主机名访过后,分别查看172.16.16.1和172.16.16.33的访问日志即/var/log/httpd/access_log ,就会发现都会有访问的记录。说明轮询的功能实现了。