利用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 20:15
下一篇 2017-06-06 20:52

相关推荐

  • Shell脚本编程

    Shell脚本编程

    2017-09-20
  • 第一周-2:Linux部分常用命令使用示例、查看命令行工具使用手册以及LinuxFHS部分目录简介

    一、部分命令使用示例: 1、ifconfg 在命令行界面下或系统配置脚本中用于配置、控制及查询TCP/IP网络接口的系统管理工具 [netartisan@localhost 桌面]$ ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 &n…

    Linux干货 2016-11-07
  • Linux的软件包管理(RPM)

    软件包管理(RPM)   本章节内容:   软件运行环境   软件包基础  Rpm包管理   一、软件运行环境(了解API和ABI)  API:应用程序开发接口,POSIX国际标准。  程序源代码–> 预处理–> 编译–&…

    Linux干货 2016-08-21
  • RAID 0 软件实现

    RAID 0 软件实现        RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行…

    Linux干货 2017-05-02
  • Linux之Centos系统的启动流程详述

    概述 了解系统的启动流程,有助于我们了解Linux系统上的一些工作原理,有助于我们深入的理解一个系统的运作方式,那么本篇就以CentOS6系统为例,介绍一下有关Linux系统启动相关的内容,分为一下几个部分 1、Linux系统的一些基础概念 2、CentOS6上的启动流程概述 第一章 Linux系统的一些基础概念 Linux系统的组成部分:内核(kernel…

    Linux干货 2016-09-29
  • nginx AIO机制与sendfile机制

    nginx AIO机制与sendfile机制 从0.8.11版本开始, nginx 开始支持Linux native aio,如何在nginx里配置使用这套机制是本文介绍的重点。在下面的示例配置中,几个重要相关选项的具体含义如下: aio: Syntax: aio on | off | sendfi…

    Linux干货 2016-10-27