利用DNS和SAMBA实现web站点的简单高可用

本文通过DNS绑定两台主机的IP地址到一个URL,然后后台samba服务器提供站点文件,此处以wordpress为例。这样当有一台服务器httpd服务出现故障的时候不至于造成站点无法访问,而且站点数据和mysql数据库数据位于后台samba服务器,另一台服务器直接从samba服务器获取站点文件和数据库数据,不会造成数据的不一致。

一、实验环境:

  1. 三台主机ip:

    1. 192.168.11.128:DNS,SAMBA

    2. 192.168.11.137:httpd,mysql

    3. 192.168.11.138:httpd

  2. 实验拓扑图如下:

    利用DNS和SAMBA实现web站点的简单高可用

    二、具体实验步骤:

    1. 首先三台服务器分别安装不同的服务:

       yum install -y bind samba samba-common #第一台主机安装bind提供dns,安装samba提供samba服务# yum install -y httpd mariadb-server  #第二台主机提供mysql和httpd服务# yum install -y httpd     #第三台主机提供httpd服务#
    2. 配置SAMBA

      1. 首先编辑/etc/samba/smb.conf修改SAMBA的配置文件,在配置文件末尾加入如下信息,配置需要共享的路径信息:

         [wordpress]    #名称# comment=wordpress  #注释信息## path=/data/www/html  #共享路径## public=no    #禁止来宾账户访问# vaild users=apache  #可以看到此共享的用户# write list=apache  #允许写操作的用户#  [mysql] comment=mysql path=/data/mysql public=no vaild users=mysql write list=mysql
      2. 通过smbpasswd命令添加指定的apache和mysql账户为samba账户

         smbpasswd -a mysql  smbpasswd -a apache

        注意:

        1. samba默认会把系统存在的用户添加为samba授权用户,所以这两个用户必须存在。

        2. 这两个用户的uid必须和第二台主机和第三台主机上的用户uid一致,因为samba默认会映射远程用户uid一直的用户为本地指定uid用户。如果uid不一致,则不能访问samba目录;

      3. 创建/data/mysql和/data/www/html目录,并分别修改属主属组,下载wordpress,解压并放入/data/www/html目录下,启动samba服务:

         mkdir /data/{www/html,mysql} chown mysql,mysql -R /data/mysql chown apache,apache -R /www/html service smb start   #smb是用来做文件共享的# service nmb start   #nmb服务用来解析netbios name#
    3. 配置httpd和mysql

      1. 第二台主机和第三台主机挂载samba共享文件:

         mount.cifs //192.168.11.128/wordpress /var/www/html -o user=apache,password=1234567a mount.cifs //192.168.11.128/mysql /mydata -o user=mysql,password=1234567a
      2. 第二台主机编辑/etc/my.cnf.d/server.cnf配置mysql的数据目录,在[mysqld]下添加如下行:

         datadir=/mydata
      3. 第二台主机启动httpd和mysql服务,第三台主机启动httpd服务:

         systemctl start httpd systemctl start mariadb
    4. 在第一台主机配置DNS:

      1. 修改/etc/named.conf和/etc/named.rfc1912.zones文件,以前博客有此文件的配置方法,此处不再赘述;

      2. 在/var/named/下创建相应的zone文件,配置如下:

        $TTL 3600 @       IN      SOA     dns     admin.wordpress.wzh.com (         2017060601         10H         10M         10D         10D )         IN      NS      dns dns     IN      A       192.168.11.128 www     IN      A       192.168.11.138 #绑定www.wordpress.wzh到192.168.11.138和137两台主机# www     IN      A       192.168.11.137
      3. 启动dns服务,然后通过ab对域名进行压测,同时关闭一台服务器的httpd服务,会发现压测并没有报错,说明站点还是正常访问的状态,则表示双站点配置成功。

原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/77687

(0)
王子豪王子豪
上一篇 2017-06-06
下一篇 2017-06-06

相关推荐

  • CPU 处理器架构知识

    CPU处理器架构: 主要有ARM、X86/Atom、MIPS、PowerPC,其中ARM在智能手机上面一枝独秀;其中ARM/MIPS/PowerPC均是基于精简指令集机器处理器的架构;X86则是基于复杂指令集的架构,Atom是x86或者是x86指令集的精简版。 Android在支持各种处理器的现状: ARM+Android 最早发展、完善的支持,主要在手机市…

    Linux干货 2015-08-03
  • vim编辑器和bash算术入门

    vim末行模式:       内建的命令行接口      (1)地址界定          :start_pos[,end_pos]          #: 特定的第#行,例如5即第5行; &nbsp…

    Linux干货 2016-12-23
  • N22第六周作业

    VIM编辑器介绍 什么是VIM? Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。 VIM的使用 &nbsp…

    Linux干货 2016-10-24
  • 制作python模块安装包[原创]

     python的第三方模块越来越丰富,涉及的领域也非常广,如科学计算、图片处理、web应用、GUI开发等。当然也可以将自己写的模块进行打包或发布。一简单的方法是将你的类包直接copy到python的lib目录,但此方式不便于管理与维护,存在多个python版本时会非常混乱。现介绍如何编写setup.py来对一个简单的python模块进行打包。 一、…

    Linux干货 2015-03-27
  • 软件包管理(rpm篇)

    软件包管理(rpm篇)静态和动态链接    链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接,分为静态链接和动态链接    静态链接        把程序对应的依赖库复制一份到包&nbsp…

    Linux干货 2017-04-24
  • 程序员的相关笑话(二)

    从前,有一个牧羊人,他有很多的羊。一天他赶着他的那群羊到了一条公路边上。突然,有一辆保时洁急驶过来,上面坐着一个年轻人人,穿着Armani的衣服,和Cerutti的皮鞋,Ray-Ban的太阳眼镜,TAG-Heuer的手表,以前Versace的领带。 他走到牧羊人面前问牧羊人:“如果我能说出你有多少只羊,你能给我一只吗?” 牧羊人看了看他那一大群数都数不过来的…

    Linux干货 2016-07-10