设为首页 收藏本站
查看: 3260|回复: 6

[经验分享] 两台WEB服务器通过DNS轮询功能实现负载均衡

[复制链接]

尚未签到

发表于 2012-7-24 10:10:47 | 显示全部楼层 |阅读模式
操作系统:redhat5.8
两台web实现负载均衡,通过NFS把网页文件共享出来,把mysql独立出来
实验环境准备:三台服务器
server1:172.16.0.22(Web+PHP+DNS)---->/www
server2:172.16.0.23(Mysql)--->/data
server3:172.16.0.24(Web+PHP+NFS)--->/www/users/test.com

实验拓扑图如下:

4bc7ae39b1d66335fcdb3e7380b43b33.jpg

最终实现的效果:
1、当用户访问Web服务器的时候,可以通过DNS轮询功能,将请求分别转到两台Web服务器,从而降低负载
2、如果其中一台Web服务器损坏,另一台Web可以继续工作
3、所有的客户端提交动态的数据,都会被写入到独立的数据库中,从而也降低了负载


一、server1:172.16.0.22(Web+PHP+DNS)

  • 一、安装DNS
  • yum -y install bind97 bin97-libs bind97-utils
  • 编辑/etc/named.conf主配置文件
  • options {
  •         directory  "/var/named";
  • };
  • zone "." IN {
  •         type hint;
  •         file "named.ca";
  • };
  • zone "test.com" IN {
  •         type master;
  •         file "test.com.zone";
  • };
  • 新建区域文件
  • mkdir -p /var/named/test.com.zone
  • 编辑区域文件,添加以下内容:
  • vim /var/named/test.com.zone
  • $TTL 600
  • @       IN SOA  ns.test.com. root.test.com.  (
  •                                         2012071301      ; serial
  •                                         1D      ; refresh
  •                                         1H      ; retry
  •                                         1W      ; expire
  •                                         3H )    ; minimum
  •          IN     NS      ns.test.com.
  • ns       IN     A       172.16.0.22
  • www      IN     A       172.16.0.22
  • www      IN     A       172.16.0.24
  • 修改属组:chown root.named test.com.zone
  • 重启DNS
  • service named restart
  • 验证DNS

f014b684ece7c88eb6e669447987ea10.png

  • 二、安装Web(这里采用编译安装)
  • 1、httpd-2.4.2需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源码编译安装,一种是直接升级rpm包,下载好安装包以后使用“rpm -Uvh”进行升级即可。这里选择使源码编译安装。
  • 注意:安装这些软件包之前不要忘记安装开发环境了
  • yum -y groupinstall "Development Tools"
  • yum -y groupinstall "Development Libraries"
  • 编译安装apr和apr-util
  • tar xf apr-1.4.6.tar.bz2
  • ./configure --prefix=/usr/local/apr
  • make && make install
  • tar xf apr-util-1.4.1.tar.bz2
  • ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  • make && make install
  • 注意:httpd-2.4.2编译过程也要依赖于pcre-devel 和openssl-devel软件包,我们yum安装一下
  • yum install pcre-devel openssl-devel
  • 2、编译安装httpd-2.4.2.tar.bz2
  • tar xf httpd-2.4.2.tar.bz2
  • cd httpd-2.4.2
  • ./configure --prefix=/usr/local/apache  --enable-so  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
  • make && make install
  • 为了节省时间,就没有加那么多的参数了
  • 了解更多的编译参数请./configure --help进行查看

  • 三、编译安装php
  • tar xf php-5.4.4.tar.bz2
  • cd php-5.4.4
  • ./configure --prefix=/usr/local/php --with-mysql=/usr --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
  • make && make install
  • 为php提供配置文件
  • cp php.ini-production /etc/php.ini
  • 编辑apache配置文件,让apache支持php
  • vim /etc/httpd/httpd.conf
  • 检查libphp5.so模块是否添加,并且开启
  • 找到<IfModule mime_module>模块,在里面添加
  • AddType application/x-httpd-php  .php
  • 定位至:DirectoryIndex index.html
  • 修改为:DirectoryIndex  index.php  index.html
  • 添加一个虚拟主机编辑httpd.conf配置文件需要修改以下内容
  • vim /usr/local/apache/conf/httpd.conf
  • LoadModule log_config_module modules/mod_log_config.so
  • Include /etc/httpd/extra/httpd-vhosts.conf
  • 把前面的#号去掉
  • #DocumentRoot "/usr/local/apache/htdocs" /在前面加个#号,注释掉/
  • 保存退出
  • vim /usr/local/apache/conf/extra/httpd-vhosts.conf
  • <VirtualHost *:80>
  • ServerName www.test.com
  • DocumentRoot /www
  • <Directory "/www">
  •          Options indexes
  •          AllowOverride none
  •          Require all granted
  •         </Directory>
  • </VirtualHost>
  • 重启httpd命令:/usr/local/apache/bin/apachectl restart
  • 写一个php测试脚本:echo "<?php phpinfo(); ?>" >/www/index.php
  • 测试结果http://172.16.0.22/index.php
  • 下面的NFS配置好以后用以下命令进行挂载:
  • mount -t nfs 172.16.0.24:/www/users/test.com /www

4a987160a6ff7ecf550311a3d5292c53.png
二、server2:172.16.0.23(Mysql)     

  • 安装mysql
  • 安装mysql-5.5.24(这里是绿色版直接解压使用)
  • 新建用户以安全方式运行进程:
  • groupadd -r mysql
  • useradd  -g mysql -r -s /sbin/nologin mysql
  • chown mysql:mysql /data
  • 解压mysql并创建软链接
  • tar xf mysql-5.5.24-linux2.6-i686.tar.gz -C /usr/local
  • cd /usr/local
  • ln -sv mysql-5.5.24-linux2.6-i686  mysql
  • 修改属主和组并初始化mysql-5.5.24
  • chown -R mysql:mysql  .
  • /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data
  • chown -R root .
  • 为mysql提供主配置文件:
  • cd /usr/local/mysql
  • cp support-files/my-large.cnf  /etc/my.cnf
  • 编辑my.cnf文件
  • vim /etc/my.cnf
  • 并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
  • thread_concurrency = 2
  • datadir = /data
  • 为mysql提供sysv服务脚本:
  • cd /usr/local/mysql
  • cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
  • 添加至服务列表:
  • chkconfig --add mysqld
  • chkconfig mysqld on
  • 最后就可以启动服务测试使用了。
  • 使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用
  • vim /etc/profile      /添加PATH搜索路径/  PATH=$PATH:/usr/local/mysql/bin
  • vim /etc/man.config       /添加man路径/ MANPATH    /usr/local/mysql/man
  • 使用mysql命令生效
  • export PATH=$PATH:/usr/local/mysql/bin/
  • 输出mysql的头文件至系统头文件路径/usr/include:
  • 这可以通过简单的创建链接实现:
  • ln -sv /usr/local/mysql/include  /usr/include/mysql
  • 输出mysql的库文件给系统库查找路径:
  • echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
  • 最后让系统重新载入系统库:
  • ldconfig
  • service mysqld start  
  • mysqladmin -uroot password 'redhat'  
  • mysql -uroot -p   
  • mysql> GRANT ALL ON discuz.* TO root@'%.%.%.%' IDENTIFIED BY 'redhat';   
  • mysql> FLUSH PRIVILEGES
三、server3:172.16.0.24(Web+PHP+NFS)
  • Web和PHP安装同上
  • 安装NFS
  • redhat5.8默认已经安装好NFS,如果你的没有安装,使用这条命令即可:
  • yum install nfs-utils nfs4-acl-tools portmap
  • 配置NFS服务端
  • nfs的主配置文件是/etc/exports,这里是配置NFS服务器开放的目录以及客户端访问的权限等。
  • vi /etc/exports
  • /www/users/test.com  172.16.0.0/16(rw,no_root_squash)
  • 保存退出
  • exportfs -arv 使其NFS配置生效,不要重新启动NFS服务
  • 在NFS中解压Discuz程序
  • unzip Discuz_7.2_FULL_SC_GBK.zip -d /www/users/test.com
  • cd /www/users/test.com
  • cd upload
  • mv * ../
  • 开始安装Discuz论坛
提示:此时你可以用一台同一网段windows主机查看一下dns是否有轮询功能,ping完以后清空dns缓存,再次ping一下就看到效果了

5b8fc32fa4f4377516a82f864293e321.png

6a0e601351f9f7440bf338d41161e9b8.jpg



  • 测试:1、你可以通过浏览器输入IP或者是域名都可以正常访问Discuz论坛
  •       2、你可以试着发贴看看数据是否写到数据库中,然后通过浏览器输入IP或者是域名,查看是否有新的内容
  •       3、你可以把两个Web停止一台测试,然后通过浏览器输入IP或者是域名测试论坛是否可以正常访问
  • 总结:
  • 一、安装Discuz的时候提示目录和文件权限不可写
  • 原因:权限问题
  • 解决方法:编辑httpd.conf把里面的User和Group暂时改成nobody,然后把Discuz的网页文件的属主和属组改成nobody
  • 二、1、安装Discuz的时候出现mysql_connect()    不支持的错误   
  •     2、编译php的时候报以下错误:configure: error: Cannot find MySQL header files under /usr/local/mysql.Note that the MySQL client library is not bundled
  • anymore!
  • 原因:两个问题是因为找不到mysql的头文件
  • 解决方法:yum -y install php-mysql
  • 在编译php的时候加上--with-mysql=/usr即可


DSC0000.png 该贴已经同步到 admin的微博

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-640-1-1.html 上篇帖子: 分离mysql和存储实现双web负载均衡 下篇帖子: Tomcat6.0连接池配置

尚未签到

发表于 2012-7-24 10:24:55 | 显示全部楼层
楼主太有才了,膜拜中……

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-15 17:15:19 | 显示全部楼层
不要在一棵树上吊死,在附近几棵树上多试试死几次~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-16 23:40:45 | 显示全部楼层
关羽五绺长髯,风度翩翩,手提青龙偃月刀,江湖人送绰号——刀郎。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 09:03:35 | 显示全部楼层
我是个凑数的。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-19 10:04:32 | 显示全部楼层
我身在江湖,江湖里却没有我得传说。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-20 19:33:20 | 显示全部楼层
走过了年少,脚起了水泡

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表