主nginx linux,Linux-实现双主模型的nginx的高可用

实现双主模型的ngnix高可用(一)

AAffA0nNPuCLAAAAAElFTkSuQmCC

准备:主机7台

client:172.18.x.x

调度器:keepalived+nginx 带172.18.x.x/16 网卡192.168.234.27

192.168.234.37

real_server192.168.234.47

192.168.234.57

192.168.234.67

192.168.234.77

实验结果

AAffA0nNPuCLAAAAAElFTkSuQmCC1 [root@234c17 ~]# for i in {1..4};do curl www.a.com;curl www.b.com;sleep 1;done  2 234.57  3 234.77  4 234.47  5 234.67  6 234.57  7 234.77  8 234.47  9 234.67

AAffA0nNPuCLAAAAAElFTkSuQmCC

过程:

一、先配置4台real_server,安装好测试用的httpd1 [root@234c47 ~]# curl 192.168.234.47;curl 192.168.234.57;curl 192.168.234.67;curl 192.168.234.77  2 234.47  3 234.57  4 234.67  5 234.77

二、配置keepalived

因为是双主模型

1.配置keepalived主机234.27

AAffA0nNPuCLAAAAAElFTkSuQmCC[root@234c27 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id kpone

vrrp _mcast_group4 234.10.10.10

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 50

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

172.18.0.100/16  //这ip调度 192.168.234.47/57

}

}

vrrp_instance VI_2 {

state BACKUP

interface ens33

virtual_router_id 51

priority 80

advert_int 1

authentication {

auth_type PASS

auth_pass 2222

}

virtual_ipaddress {

172.18.0.200/16  //这ip调度 192.168.234.147/157

}

}

AAffA0nNPuCLAAAAAElFTkSuQmCC

2.配置keepalived主机234.37

AAffA0nNPuCLAAAAAElFTkSuQmCC[root@234c37 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id kpone

vrrp _mcast_group4 234.10.10.10

}

vrrp_instance VI_1 {

state BACKUP

interface ens33

virtual_router_id 50

priority 80

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

172.18.0.100/16  //这ip调度 192.168.234.47/57

}

}

vrrp_instance VI_2 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 2222

}

virtual_ipaddress {

172.18.0.200/16  //这ip调度 192.168.234.147/157

}

}

AAffA0nNPuCLAAAAAElFTkSuQmCC

这样双主模型简单的就搭建好了

3.配置nginx主机234.27/37

先配置http语块

AAffA0nNPuCLAAAAAElFTkSuQmCChttp {

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

upstream web1{//

server 192.168.234.47:80;

server 192.168.234.57:80;

}

upstream web2{

server 192.168.234.67:80;

server 192.168.234.77:80;

}/*

ngx_http_upstream_module

ngx_http_upstream_module模块

用于将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令

进行引用

1、upstream name { ... }

定义后端服务器组,会引入一个新的上下文

默认调度算法是wrr

Context: http

upstream httpdsrvs {

server ...

server...

...

*/

AAffA0nNPuCLAAAAAElFTkSuQmCC

然后配置server

AAffA0nNPuCLAAAAAElFTkSuQmCCserver {

listen       80 default_server; //默认监听80端口

server_name www.a.com//域名

listen       [::]:80 default_server;

root         /usr/share/nginx/html;

# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;

location / {

proxy_pass http://web1 ;  //定义访问80端口的请求,以web1提供服务。而指定的web1在http语块中为 192.168.234.47/57:80 提供服务

}

error_page 404 /404.html;

location = /40x.html {

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

}

}

server {

server_name www.b.com

listen 80;

location / {

proxy_pass http://web2 ; //定义访问80端口的请求,以web2提供服务。而指定的web2在http语块中为 192.168.234.147/157:80 提供服务

}

}

}

AAffA0nNPuCLAAAAAElFTkSuQmCC

这样访问 www.a.com就是访问192.168.234.47/57:80

访问 www.b.com就是访问192.168.234.67/77:80

现在客户机将host添加www.a/b.com

172.18.0.100 www.a.com

172.18.0.200www.b.com

客户端将www.a.com 解析 172.18.0.100[root@234c17 ~]# ping www.a.com

PING www.a.com (172.18.0.100) 56(84) bytes of data.

64 bytes from www.a.com (172.18.0.100): icmp_seq=1 ttl=64 time=0.358 ms

64 bytes from www.a.com (172.18.0.100): icmp_seq=2 ttl=64 time=0.376 ms

64 bytes from www.a.com (172.18.0.100): icmp_seq=3 ttl=64 time=0.358 ms

64 bytes from www.a.com (172.18.0.100): icmp_seq=4 ttl=64 time=0.366 ms

客户端将www.b.com 解析 172.18.0.200[root@234c17 ~]# ping www.b.com

PING www.b.com (172.18.0.200) 56(84) bytes of data.

64 bytes from www.b.com (172.18.0.200): icmp_seq=1 ttl=64 time=0.582 ms

64 bytes from www.b.com (172.18.0.200): icmp_seq=2 ttl=64 time=0.339 ms

64 bytes from www.b.com (172.18.0.200): icmp_seq=3 ttl=64 time=0.524 ms

64 bytes from www.b.com (172.18.0.200): icmp_seq=4 ttl=64 time=0.337 ms

结果:

AAffA0nNPuCLAAAAAElFTkSuQmCC1 [root@234c17 ~]# for i in {1..4};do curl www.a.com;curl www.b.com;sleep 1;done  2 234.57  3 234.77  4 234.47  5 234.67  6 234.57  7 234.77  8 234.47  9 234.67

AAffA0nNPuCLAAAAAElFTkSuQmCC

实现双主模型的ngnix高可用(二)

AAffA0nNPuCLAAAAAElFTkSuQmCC

现在扩展实验

将192.168.234.47/57主机加ip地址[root@234c47 ~]#ip a a dev ens37 192.168.167/24[root@234c57 ~]#ip a a dev ens37 192.168.177/24

编辑http的的配置文件增加基于FQDN虚拟主机

AAffA0nNPuCLAAAAAElFTkSuQmCC[root@234c47 ~]# vim /etc/httpd/conf.d/vhost.conf

documentroot /data/web1

servername www.a.com

require all granted

AAffA0nNPuCLAAAAAElFTkSuQmCC

另一个主机也加上虚拟主机

AAffA0nNPuCLAAAAAElFTkSuQmCC[root@234c57 ~]# vim /etc/httpd/conf.d/vhost.conf

documentroot /data/web1

servername www.a.com

require all granted

AAffA0nNPuCLAAAAAElFTkSuQmCC

重启httpd服务

AAffA0nNPuCLAAAAAElFTkSuQmCC1 [root@234c17 ~]# for i in {1..8};do curl www.a.com;done  2 234.167  3 234.177  4 234.47  5 234.57  6 234.167  7 234.167  8 234.177  9 234.47 10

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC1 [root@234c17 ~]# for i in {1..8};do curl www.b.com;done  2 234.67  3 234.67  4 234.77  5 234.67  6 234.77  7 234.67  8 234.77  9 234.77 10

AAffA0nNPuCLAAAAAElFTkSuQmCC

原文出处:https://www.cnblogs.com/OrochWang/p/9575894.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值