LVS的简单示例(一)

LVS的简单示例

1.使用NAT模型的TCP协议类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;

必要条件:三台主机(一个调度器两个服务器)

声明:172.16.1.11作为调度器,192.168.100.2和192.168.100.3作为服务器

第一步:给调度器配置一个网络适配器,配置其IP地址为192.168.100.1

第二步:

服务器配置(Real Server即RS):

配置两个RS的为同一网关:

# route add default gw 192.168.100.1

搭建LAMP来提供php服务:

安装httpd,php,php-mysql,mariadb-server(mysql-server)

# yum insatll httpd php php-mysql mariadb-server(mysql-server)

RS1:1) 配置虚拟主机:

# cd /etc/httpd/conf.d/

# vim vhost1.conf

<VirtualHost 192.168.100.2:80>

ServerName www.ytc.com

DocumentRoot "/myweb/vhost1"

DirectoryIndex  index.php

<Diretory "/myweb/vhost1">

Options  None

AllowOverride None

Require all granted

</Diretory>

</VirtualHost>

2) 完善虚拟主机的目录要求:

# mkdir -pv /myweb/vhost1

# cd /myweb/vhost1/

3)做测试页面,查看php能否提供服务

# vim index.php

Real Server 1 <dr>

?php>

phpinfo();

?>

4) 开启httpd服务:

# systemtl start httpd.service

RS2:1) 配置虚拟主机

# cd /etc/httpd/conf.d/

# vim vhost2.conf

<VirtualHost 192.168.100.3:80>

ServerName www.ytc.cn

DocumentRoot "/myweb/vhost2"

DirectoryIndex  index.php

<Diretory "/myweb/vhost2">

Options  None

AllowOverride None

Require all granted

</Diretory>

</VirtualHost>

2) 完善虚拟主机的目录要求:

# mkdir -pv /myweb/vhost2

# cd /myweb/vhost2/

3)做测试页面,查看php能否提供服务

# vim index.php

Real Server 2 <dr>

?php>

phpinfo();

?>

4) 开启httpd服务:

# systemtl start httpd.service

第三步:调度器配置:

1)开启核心路由转发功能:

# echo 1 > /proc.sys/net/ipv4/ip_forward

2) 创建集群服务:

# ipvsadm -A -t 172.16.1.11:80 -s rr(前提安装ipvsadm:yum install ipvsadm )

3) 向集群中添加RS:

# ipvsadm -a -t 172.16.1.11:80 -r 192.168.100.2:80 -m -w 1

# ipvsadm -a -t 172.16.1.11:80 -r 192.168.100.3:80 -m -w 1

注意:需注意SElinux 和 iptables的干扰:

我将三台主机做了如下操作:

# iptables -F

# setenforce 0

配置完毕后:

web端测试:

第一次输入:172.16.1.11/

第二次输入:172.16.1.11/

f

测试完后,php可以成功提供服务:

接下来,在RS1和RS2上配置wordpress应用:

将wordpress应用分别传送到RS1的/myweb/vhost1和RS2的/myweb/vhost2目录下并解压:

# tar xf wordpress-4.2-zh_CN.tar.gz
          在web端测试:

输入172.16.1.11/wordpress/index.php

需要注意的是:

1)调度器需要进行会话保持,如果不进行会话保持,登录则不会成功;

2)RS1和RS2需要进行数据库共享,不然RS1服务器损坏后,用woedpress时,之前的信息全部丢失,

所以,RS1和RS2需共享存储;

1):调度器设置会话保持功能:

# ipvsadm -E -t 172.16.1.11:80  -s  rr  -p  5

2):服务器配置:

开启MySQL服务,为wordpress创建一个数据库,并授权用户登录wordpress

# systemctl  start mariadb.service

MariaDB [(none)]> create database wordpressdb;

MariaDB [(none)]> grant all  on  *.* to 'wpuser'@'192.168.%.%' identified by '123456';

共享数据库:

NFS实现:

首先在RS1上创建共享目录/data并修改其权限:

~]# mkdir /data

~]# chmod 757 /data

编辑/etc/exports文件,声明共享目录:

即在文件中添加一行:

/data    *(rw,no_root_squash)

开启NFS服务并查看2049端口是否被监听:

~]# systemctl start nfs
              然后在RS2创建目录/mydata

~]# mkdir /mydata

将RS1的共享目录/data挂载到RS2的/mydata下

~]# mount -t nfs 172.16.1.20:/data /mydata

将本地的mysqld服务的数据目录设置为/mydata:

~]# vim /etc/my.cnf

将datadir设置为/mydata

[mysqld]
              datadir=/mydata
              把资源放到/mydata下并查看/mydata:

~]# cp -a /var/lib/mysql/* /mydata/

~]# ls /mydata
                 ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.sock  test  ultrax  ytc  ytc123  ytc.txt
              开启数据库服务:

~]# service mysqld start
              Starting mysqld:                                   [  OK  ]

完成后在web端访问:

输入172.16.1.11/

输入用户名密码后:

这样就可以使用wordpress了;

原文地址:http://blog.51cto.com/yuantianchi/2126341

时间: 2024-10-19 07:06:50

LVS的简单示例(一)的相关文章

Linux负载均衡软件LVS的简单示例

本文一个简单的示例演示LVS的配置(DR模式)和测试.使用的配置环境如下:Director server: 192.168.8.4Real server1: 192.18.8.5Real server2: 192.168.8.6VIP: 192.168.8.200网络topology图如下:图2中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR.TUN模式中,数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址.此IP在Rea

AMQP消息队列之RabbitMQ简单示例

前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧.在具体讲解之前,先通过一个图来概览下: 1.添加Maven依赖 <!-- rabbitmq begin --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit

HMM的维特比算法简单示例

今天读了一位大牛的关于HMM的技术博客,读完之后,写了一个关于维特比算法的简单示例,用scala和java语言混合编写的.现在上传之. package com.txq.hmm import java.utilimport scala.collection._ /** * HMM维特比算法,根据显示状态链条估计隐式链条 * @param states 隐式states * @param observations 显式states * @param start_probability 初始概率向量

spring-servlet.xml简单示例

spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 1 <!-- springMVC简单配置 --> 2 <?xml version="1.0" encoding="UTF-8"?> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://w

关于Ajax实现的简单示例

一.代码示例 关于Ajax的基本概念(包括XMLHttpRequest对象及其相关方法属性)移步这里(w3school中文版)学习了解. <!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>使用Ajax异步加载数据</title> <script type = "text/javasc

【转】bind简单示例

bind简单示例代码 namespace { class placeholder_ {}; placeholder_ __1; } template <typename R, typename T, typename Arg> class simple_bind_t { private: typedef R (T::*F)(Arg); F f_; T* t_; Arg& a_; public: simple_bind_t(F f, T* t, Arg &a) : f_(f),

SQL左连接、右连接和内连接的简单示例

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接) 只返回两个表中联结字段相等的行:举例如下: -------------------------------------------- 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录

Backbone简单示例

要的资源: <script type="text/javascript" src="../dep/underscore-1.6.0.min.js"></script> <script type="text/javascript" src="../dep/jquery-1.11.1.min.js"></script> <script type="text/javas

动态网站开发技术学习2:VS 2010制作作第一个简单示例网站

制作一个简单示例网站的步骤: 一,启动VS 2010开发环境,选择菜单中的"文件",选择其中的"新建",再选择"网站",会弹出"新建网站"对话框. 二,在"新建网站"的对话框,在"已安装模板"中选择Visual C#,右侧的选择"ASP.NET网站"选项,单击"新建网 站"中的"文件系统",下拉菜单中有"文件系统&qu