利用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

相关推荐

  • keepalived

    简介:     vrrp, virtual routing redundant protocol, 虚拟路由协议, 是为了解决局域网中配置静态网关出现单点失败现象的路由协议; 设计目标时是支持特定情况下IP数据流量失败转移不会引起混乱, 允许主机使用单路由器, 以及及时在实际第一跳路由器使用失败的情形下, 仍然能够维护…

    Linux干货 2016-11-11
  • 正则表达式字符集

    POSIX Description ASCII Unicode Shorthand Java [:alnum:] Alphanumeric characters [a–zA–Z0–9] [\p{L}\p{Nl}  \p{Nd}] \p{Alnum} [:alpha:] Alphabetic characters …

    Linux干货 2017-07-07
  • 马哥教育网络第21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@6 ~]# …

    Linux干货 2016-08-29
  • Linux系统初始化流程:系统初始化相关基础知识

    Linux系统初始化流程:系统初始化相关基础知识 内核简介 内核的功能 进程管理:通过task_struct, scheduler 实现 内存管理 I/O管理:中断以及中断处理 文件系统管理:ext3,ext4,xfs 等 驱动程序 安全相关:SELinux,各种加密库 通用软件,平台相关软件 内核设计流派 单内核:单一体系结构 linux 为单一内核 模块…

    2015-02-28
  • keepalived实现nginx的高可用-实战可用

    Keepalived.conf解析 三大部分: 全局定义块、VRRP 实例定义块及虚拟服务器定义块 实例剖析 ! Configuration File for keepalived   global_defs {    notification_email {…

    Linux干货 2015-04-14
  • Linux 常用命令之cp,一个可以煮饭的工具;

    cp 复制目录和文件 对于系统管理员来说,在文件系统中将文件和目录从一个位置复制到另外一个位置是家常便饭,而cp就是可以煮饭的工具之一。cp需要源对象和目标对象,源对象在前,目标对象在后面。 1. 常用选项 基本用法 [root@local tmp]# ll total 0 -rw-rw-r–. 1 gen…

    Linux干货 2016-08-02