Nginx+Keepalived负载均衡+后端LNMP网站集群
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网站集群的更多相关文章
- nginx做负载均衡和tomcat简单集群
Nginx做负载均衡和TOMCAT简单集群 1.下载安装nginx及其依赖包 ...
- Nginx+Keepalived负载均衡高可用
Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务 http 80 b.负载均衡(方向代理proxy) ...
- 23.Nginx+keepalived负载均衡高可用
Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...
- haproxy/nginx+keepalived负载均衡 双机热备 邮件报警 实战及常见问题
Haproxy 做http和tcp反向代理和负载均衡keepalived 为两台 Haproxy 服务器做高可用/主备切换.nginx 为内网服务器做正向代理,如果业务需求有变化,也可以部分替代 ...
- CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR);
目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中. ...
- PostgreSQL高可用性、负载均衡、复制与集群方案介绍
目录[-] 一.高可用性.负载均衡.复制的几个方案比较: 二.多节点集群方案比较 9.3官方文档(中文):http://58.58.27.50:8079/doc/html/9.3.1_zh/high- ...
- service几种访问类型(集群外负载均衡访问LoadBalancer , 集群内访问ClusterIP,VPC内网负载均衡LoadBalancer ,集群外访问NodePort)
一.集群外访问(负载均衡) kind: ServiceapiVersion: v1spec: ports: - protocol: TCP port: 4341 targetPort: 8080 no ...
- 网关/负载均衡下的consul集群代理
之前有做过使用单机版的consul实现Prometheus服务注册,以为使用集群版的consul只是将consul服务地址从节点IP变为了网关IP.但比较坑的就是,当使用consul注册一个servi ...
- Nginx + Keepalived负载均衡
第一步: 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-1.2.18.tar.gz ...
随机推荐
- 1. docker安装
前提 系统:我这边都使用虚拟机安装的CentOS7,具体安装可以参考:Windows安装Linux虚拟机(CentOS7) yum:推荐更新下yum:yum update;我们这边CentOS7自带d ...
- Laravel框架接入短信平台进行用户注册短信验证
今天刚接触了一个短信接口平台,云通讯第三方短信提供服务商.http://www.yuntongxun.com/ 然后介绍一下怎么使用该短信平台来接入到自己的项目中. 首先你的去注册一个账号,然后根据提 ...
- clone分支,修改文件本地commit后, push回原分支失败,处理方法
从远程clone 一个仓库到本地仓库A后,由于有多个分支,经常需要切换,不同分支区别比较大,切换一下,需要重编译,于是又在本地clone了改动较大的一个分支F到仓库B: 在B仓库改动后,提交到A仓库的 ...
- GridView 72般绝技
GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠 ...
- 新手必看】Highcharts的100个基础问答
新手必看]Highcharts的100个基础问答 2014-12-2 10:59| 发布者: Mr.Zhang| 查看: 2749| 评论: 3|来自: Highcharts中文论坛 摘要: 1. ...
- Node.js crypto加密模块汇总
第一篇文章:MD5 和 SHA家族 概述:使用Node实现较为简单的Hash加密算法,本篇实际上重不在Hash加密,主要的还是为了引出crypto加密的三种方式 第二篇文章:HMAC 概述:密钥相关的 ...
- nodejs动态路由
主要功能:根据输入路由的不同,加载访问不同的HTML页面 在这里我不得不说webstorm真的是一个很棒的开发工具,我学习nodejs也是用的它. 文件目录: first_server.js: 首先我 ...
- 聊聊ES6中的generator
generatorgenerator(生成器)是ES6标准引入的新的数据类型.一个generator看上去像一个函数,但函数执行中间可以停止. ES6定义generator标准的哥们借鉴了Python ...
- 【SpringBoot】编写一个自己的Starter
一.什么是Starter? 在开发过程中我们就经常使用到各种starter,比如mybatis-spring-boot-starter,只需要进行简单的配置即可使用,就像一个插件非常方便.这也是Spr ...
- 链家H5项目总结
在此次项目中,使用的是高度百分比.对于适配这一块确实少了很多. 1.如果是用高度百分比的话.则img需要写成这样的样式. img{ width:auto; height:100%; display: ...