实验:基于keepalived实现两台realserver服务器中的nginx和php-fpm服务互为主从

基于keepalived实现两台realserver服务器中的nginx和php-fpm服务互为主从

思路:利用两个VIP,一个定位nginx,一个定位php-fpm

步骤:

1、准备两台基于LNMP架构的服务器(能够提供正常的web服务)

2、在nginx为主php-fpm为备的机器上操作:

①编辑keepalived的配置文件(文件内容的具体含义请参看博客:

http://13150617.blog.51cto.com/13140617/1979652)

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 2

router_id LVS_DEVELhaha

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 11

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 111111

}

virtual_ipaddress {

172.17.0.22

}

}

vrrp_instance VI_2 {

state BACKUP

interface eth1

virtual_router_id 12

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 111111

}

virtual_ipaddress {

192.168.199.33

}

}

②配置php-fpm,使其监听在9000端口并且允许所有主机访问

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

listen = 9000

注释 listen.allowed_clients = any

③配置nginx,使其指向php所在的主机上

vim /etc/nginx/nginx.conf

fastcgi_pass   192.168.199.33:9000;  虚拟ip

④开启转发功能

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

⑤启动服务

systemctl start keepalive

3、php-fpm为主nginx为备的机器上操作:

①编辑keepalived的配置文件

vim /etc/keepalived/keepalived.conf

同上面的配置,只需要调换state状态和priority优先级即可

②配置php-fpm

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

配置完全同上

③配置nginx

vim /etc/nginx/nginx.conf

配置完全同上

④开启转发功能

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

⑤启动服务:

systemctl start keepalive

4、测试:两台服务器都正常服务时,nginx为主的机器上和php-fpm为主的机器上都各有一个VIP,网站可正常访问

当有一台服务器出现故障时,那么该VIP就会漂移到正常的服务器上,而且网站依旧可以访问

感谢浏览,如有疑问,欢迎留言。

时间: 2024-10-12 08:50:45

实验:基于keepalived实现两台realserver服务器中的nginx和php-fpm服务互为主从的相关文章

双节点(nginx+keepalived)为两台apache服务器提供负载均衡

说明:本实验为双节点nginx为两台apache服务器提供负载均衡,本文不是做lvs,所以realserver不是配置在keepalived.conf而是在nginx的配置文件中upstream.此架构需考虑的问题:1)Master没挂,则Master占有vip且nginx运行在Master上2)Master挂了,则backup抢占vip且在backup上运行nginx服务3)如果master服务器上的nginx服务挂了,则vip资源转移到backup服务器上4)检测后端服务器的健康状态Mast

EG:nginx反向代理两台web服务器,实现负载均衡 所有的web服务共享一台nfs的存储

step1: 三台web服务器环境配置:iptables -F; setenforce 0 关闭防火墙:关闭setlinux step2:三台web服务器 装软件 step3:主机修改配置文件:vim /usr/local/nginx/conf/nginx.conf 代理服务器修改文件:修改端口即可,端口可以自己设 ,不改默认的也行,但是得相应匹配 为测试需要,更改三台机器nginx的html文件: mv /usr/local/nginx/html/index.html /usr/local/n

单节点nginx为两台apache服务器提供负载均衡

需求:本实验为单节点nginx为两台apache服务器提供负载均衡,所有配置为最简单 1.初始化3台测试server,该关的关了 [[email protected] ~]# vim /etc/hosts 192.168.1.101 ng-master 192.168.1.161 web1 192.168.1.162 web2 [[email protected] ~]# yum clean all [[email protected] ~]# systemctl stop firewalld.

单节点nginx为两台apache服务器提供负载均衡(转载)

单节点nginx为两台apache服务器提供负载均衡 需求:本实验为单节点nginx为两台apache服务器提供负载均衡,所有配置为最简单 1.初始化3台测试server,该关的关了 1 2 3 4 5 6 7 8 9 [[email protected] ~]# vim /etc/hosts 192.168.1.101   ng-master 192.168.1.161   web1 192.168.1.162   web2 [[email protected] ~]# yum clean a

两台web服务器做文件共享,负载均衡

服务器环境:httpd.php.MySQL.DNS.NFS共配置4台虚拟机,web服务各一台,PHP.DNS一台,MySQL.NFS一台. 网段使用172.16.0.0/16 注:httpd,php,DNS服务在此前的博客中有详细说明,这里就不在详细演示,在此前的基础上追加安装,MySQL,NFS 一.安装mysql-5.5.33 下载mysql-5.5.33-linux2.6-x86_64.tar.gz软件包 1.准备数据存放的文件系统 因为数据总是在动态增长的,所以我们要创建一个逻辑卷来保存

两台web服务器实现负载均衡的解决方案

写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. 总体方案 平台规划拓扑图如下: 总体解决方案: 两台web服务通过DNS实现负载均衡,共享NFS服务器,通过NFS服务器共享MySQL服务器 说明:接下来将搭建DNS服务器.两台web服务器.NFS服务器以及MySQL服务器,在此过程中只给出实现过程及其步骤,望理解. 搭建DNS服务器 1.编辑主配置文件 # vim /etc/named.conf options { directory   "

heartbeat 配置两台web服务器高可用集群案例

通过heartbeat 配置两台web服务器高可用集群案例: 拓扑: web1:192.168.0.101 hostname: web1.example.com web2:192.168.0.102 hostname:web2.example.com vip:192.168.0.254 nfs服务器:192.168.0.100(存放web页面) 注意: 1主机名要与uname -n 保持一致 2.web1与web2主机的date时间保持同步 3.web1与web2,ssh双机互信通信 4.关闭i

socket实现两台FTP服务器指定目录下的文件转移(不依赖第三方jar包)

通过socket实现两台FTP服务器指定目录下的文件转移,其中包含了基础了ftp文件列表显示.上传和下载.这里仅供学习用,需掌握的点有socket.ftp命令.文件流读取转换等 完整代码如下: FtpFileTransfer.java package com.xxx.ftp.client; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io

两台linux服务器器同步目录脚本

在集群环境中,在打补丁,或安装新软件后,经常需要同步目录. 下面我做了一个脚本,用于完成这个过程. 因为没有在两台机器间做ssh互信,因此,执行过程中需要输入远程机器密码. #!/bin/bash #author:wjf #date:2015/06/01 #desc:同步一台机器上的一个文件夹至远程机器,可用于集群环境中的代码同步 #使用限制:1.同步文件夹路径中不允许出现空格 # 2.远程机器中同步文件夹的上层路径必须手动检查建立 v_tongbu_dir=/tmp/wjf/ #-------