Centos6.4 x86,4台,地址是10.10.10.11-14,vip给的100,目标是在13和14安装nginx+keepalived,11和12安装nginx+mysql+php,做为web,以下为配置步骤

1,安装epel源。

rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

编辑/etc/yum.repos.d/epel.repo,把基础的恢复,镜像的地址注释掉,就是

#baseurl

mirrorlist

改成

baseurl

#mirrorlist

# yum repolist//出现一下输出表示成功

repo id           repo name                                              status

base              CentOS-6 - Base                                         6,367

epel              Extra Packages for Enterprise Linux 6 - i386         10,335

………

repolist: 17,600

2,四台机器全部执行下面命令,一步到位安装nginx,php,mysql

#yum -y install gcc pcre-devel zlib-devel openssl-devel nginx mysql mysql-server php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm

service nginx start

chkconfig  nginx on    #设为开机启动

chkconfig mysqld on

cp /usr/share/mysql/my-medium.cnf   /etc/my.cnf

/usr/bin/mysqladmin -u root password '123456'       #设置密码

/etc/init.d/mysqld start

chkconfig php-fpm on

vi /etc/php-fpm.d/www.conf

user = nginx   #修改用户为nginx

group = nginx

service php-fpm  start

vi /etc/nginx/conf.d/default.conf

index  index.php index.html index.htm;   #增加

location ~ \.php$ {

root           html;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;

include        fastcgi_params;

}

service mysqld restart

service nginx  restart

访问phpinfo(),正常。

3,下面开始配置负载均衡,只在13和14这两台机器进行

先安装keepalived

wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz

tar xzf keepalived-1.2.15.tar.gz

cd keepalived-1.2.15

./configure

make && make install

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/sbin/keepalived /usr/sbin/

mkdir /etc/keepalived

cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

chkconfig keepalived on

三处nginx要改的地方

upstream fuckyou

{

server 10.10.10.11;

server 10.10.10.12;

}

server {

listen       80;

server_name  10.10.10.100;//vip

location / {

proxy_pass http://fuckyou;

}

此时集群已经可以访问了,无论是访问13或者14的ip,都可以正常转到11或者12上面,下面开始配置keepalived了。

global_defs {

notification_email {

admin@xxx

}

notification_email_from keepalived@domain.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_http_port {

script "/opt/nginx_pid.sh"

interval 2

weight 2

}

vrrp_instance VI_1 {

state MASTER      // BACKUP

interface eth1

virtual_router_id 51

mcast_src_ip 10.10.10.13

priority 102                //值要比 back 高

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

chk_http_port //监控

}

virtual_ipaddress {

10.10.10.100

}

}

从服务器:

global_defs {

notification_email {

admin@xxx

}

notification_email_from keepalived@domain.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_http_port {

script "/opt/nginx_pid.sh"

interval 2

weight 2

}

vrrp_instance VI_1 {

state BACKUP

interface eth1

virtual_router_id 51

mcast_src_ip 10.10.10.14

priority 101             //值比 master 低。。

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

chk_http_port // 监控

}

virtual_ipaddress {

10.10.10.100

}

}

设置一下nginx的监控脚本

vi /opt/nginx_pid.sh

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`

if [ $A -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 3

if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then

killall keepalived

fi

fi

OK,启动

service keepalived start

# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:50:56:34:03:5c brd ff:ff:ff:ff:ff:ff

inet 10.10.10.13/24 brd 10.10.10.255 scope global eth1

inet 10.10.10.100/32 scope global eth1

inet6 fe80::250:56ff:fe34:35c/64 scope link

valid_lft forever preferred_lft forever

4: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN

link/ether fe:2c:74:f5:26:70 brd ff:ff:ff:ff:ff:ff

vip已经起来了,访问一下10.10.10.100,OK。测试连接,此时nginx的负载均衡服务已经开启了,13,14两个负载均衡都已经启用(访问时候,都会自动转到11或者12的web页面上)

好久没配置这类东西了,还算顺利。

Nginx+Keepalived负载均衡+后端LNMP网站集群的更多相关文章

  1. nginx做负载均衡和tomcat简单集群

    Nginx做负载均衡和TOMCAT简单集群                1.下载安装nginx及其依赖包                                               ...

  2. Nginx+Keepalived负载均衡高可用

    Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务  http 80 b.负载均衡(方向代理proxy) ...

  3. 23.Nginx+keepalived负载均衡高可用

    Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...

  4. haproxy/nginx+keepalived负载均衡 双机热备 邮件报警 实战及常见问题

    Haproxy 做http和tcp反向代理和负载均衡keepalived 为两台 Haproxy 服务器做高可用/主备切换.nginx   为内网服务器做正向代理,如果业务需求有变化,也可以部分替代 ...

  5. CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR);

    目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中. ...

  6. PostgreSQL高可用性、负载均衡、复制与集群方案介绍

    目录[-] 一.高可用性.负载均衡.复制的几个方案比较: 二.多节点集群方案比较 9.3官方文档(中文):http://58.58.27.50:8079/doc/html/9.3.1_zh/high- ...

  7. service几种访问类型(集群外负载均衡访问LoadBalancer , 集群内访问ClusterIP,VPC内网负载均衡LoadBalancer ,集群外访问NodePort)

    一.集群外访问(负载均衡) kind: ServiceapiVersion: v1spec: ports: - protocol: TCP port: 4341 targetPort: 8080 no ...

  8. 网关/负载均衡下的consul集群代理

    之前有做过使用单机版的consul实现Prometheus服务注册,以为使用集群版的consul只是将consul服务地址从节点IP变为了网关IP.但比较坑的就是,当使用consul注册一个servi ...

  9. Nginx + Keepalived负载均衡

    第一步: 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-1.2.18.tar.gz ...

随机推荐

  1. Primer回顾 标准库类型

    string类型的输入操作符: 1.读取并忽略开头所有的空白字符(如空格,换行符,制表符). 2.读取字符直至再次遇到空白字符,读取终止.   用getline读取整行文本 getline.接受两个参 ...

  2. 《Java多线程编程核心技术》读后感(十)

    一生产一消费:操作栈 本实例是使生产者向堆栈List对象中放入数据,使消费者从List堆栈中取出数据.List最大容量是1 package Third; import java.util.ArrayL ...

  3. Python 在windows上安装BeautifulSoup和request以及小案例

    Python以及PyCharm安装成功后,操作如下: 此时,代码import requests不报错了. 那么,Python 在windows上安装BeautifulSoup,怎么操作呢? 1. 打开 ...

  4. Gym - 100801H Hash Code Hacker (构造)

    题意:求 n 个哈希值相同的串. 析:直接构造,通过取模来查找相同的串. 代码如下: #pragma comment(linker, "/STACK:1024000000,102400000 ...

  5. VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解:

    VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解: 首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备 ...

  6. vc++图像显示

    显示资源中的图片 (1)从资源中装入位图 ● 定义位图对象数据成员CBitmap m_Bitmap; ● 调用CBitmap成员函数LoadBitmap(),如m_Bitmap.LoadBitmap( ...

  7. HDU - 5950 Recursive sequence(二项式+矩阵合并+矩阵快速幂)

    Recursive sequence Farmer John likes to play mathematics games with his N cows. Recently, they are a ...

  8. HTML5学习笔记(四)语义元素

    语义元素能够清楚的描述其意义给浏览器和开发者. 无语义 元素实例: <div> 和 <span> - 无需考虑内容. 语义元素实例: <form>, <tab ...

  9. JS实现页面刷新方法

    下面介绍全页面刷新方法:有时候可能会用到 window.location.reload()刷新当前页面. parent.location.reload()刷新父亲对象(用于框架) opener.loc ...

  10. 【读后感1】SQL2008技术内幕- SQL逻辑查询处理

    引言观点 1. 编程语言日新月异,但是从没有人否定sql 在现代编程中的巨大作用和 持续的可利用性.SQL以对人类友好的阅读体验提供数据查询能力( 相比其他编程语言 ), 同时在各种数据库平台中,基础 ...